Italian community of Lazarus and Free Pascal

Programmazione => Graphics => Topic aperto da: Stilgar - Maggio 03, 2012, 12:27:00 pm

Titolo: ZenGL : Texture
Inserito da: Stilgar - Maggio 03, 2012, 12:27:00 pm
Porca paletta... non riesco ad adattare TSprite all'uso di ZenGL ... non disegna una cippalippa...

Per compilare il progetto :
nella cartella zenLibs mettere le liberie che si trovano in zengl/libs
dentro la cartella src/ZenGL mettere i sorgenti di ZenGL, in modo che li compili con l'applicazione (metodo static bind).
Per il resto solita struttura.
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 04, 2012, 09:00:44 am
ciao non sono sparito non vi preoccupate ;)

una domanda...
PGtkWidget dove diavolo sta definito?
Titolo: Re:ZenGL : Texture
Inserito da: Stilgar - Maggio 04, 2012, 09:23:25 am
Dal nome, a occhio e croce è del wigetSet GTK ;)
Ora sono io che sono carico di lavoro, spero di liberarmi quanto prima per continuare le prove ;)
Titolo: Re:ZenGL : Texture
Inserito da: sergio - Maggio 04, 2012, 12:54:28 pm
scusate, ma anche io sono un po' indaffarato , appena posso (penso nel week) vedo se posso aiutarvi  :)
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 08:45:57 am
Dal nome, a occhio e croce è del wigetSet GTK ;)
Ora sono io che sono carico di lavoro, spero di liberarmi quanto prima per continuare le prove ;)

si a occhio e croce l'ho trovato :D + nella unit gtk, mi chiedevo come mai sotto windows non avevi lo stesso problema
comunque sto avendo un sacco di errori in compilazione... dove hai preso il pezzo di codice?
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 11:07:04 am
sono riuscito a fare lo scrolling infinito con i 2 sfondi a 2 diverse velocità

sono arrivato tardi o è utile a qualcuno? :D
Titolo: Re:ZenGL : Texture
Inserito da: Stilgar - Maggio 05, 2012, 12:11:40 pm
Bravissimo ;)
Condividi i sorgenti. Ho dovuto stoppare tutto. Ieri sera ho fatto tardi in ufficio.. e non sono riuscito a fare molto a casa.
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 01:16:22 pm
emh... per risparmiare tempo  ::) ho lavorato direttamente dentro alla demo che trovate in
zengl-linux-0.2.8/demos/Lazarus/05 - Sprites 2D

lo so che si poteva fare meglio ma, come si dice? così ho trovato la quadratura del cerchio :D

comunque:
1) i file demo05.* li dovete sovrascrivere a quelli già presenti
2) i file nella cartella 'data' vanno copiati in 'zengl-linux-0.2.8/bin/data' insieme alle altre risorse

riguardo gli sfondi, ho fatto degli aggiustamenti alle dimensioni portandoli a 1600 pixel di larghezzza.
lo sfondo stellato è ora un jpg ma solamente perchè ridimensionandolo l'allegato mi superava i 200kb e quindi l'ho trasformato in jpg... potete ovviamente mettere un png basta che sia 1600x600.

riguardo al sorgente, cercate i commenti con 'nomorelogic' così avrete idea di dove sono intervenuto.

@Stilgar
io l'account con sourceforge ce l'ho ma di scrivere non se ne parla
è comunque presto, bisogna fare altre prove, stavo pensando ad un mostro finale...

buon weekend a tutti
nomorelogic
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 04:04:18 pm
qualche passo avanti...
vi consiglio di provarlo e di compilarlo sotto win, secondo me la cosa prende forma sul serio
c'è anche l'input da joystick

per l'installazione, vedere post precedente
Titolo: Re:ZenGL : Texture
Inserito da: Stilgar - Maggio 05, 2012, 04:58:18 pm
Porca paletta, anche con ZenGL si ha il ritardo sulla tastiera ... :(
Mi sa che bisogna riscrivere un pezzo della libreria ... almeno per windows.
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 07:41:33 pm
anche per linux...
quasi quasi vedo sul sito di zenGL se c'è qualcosa al riguardo o posto una richiesta

a proposito l'hai provato con il joy? una fluidità niente male con 20 sprite in movimento...


Edit:
ho postato la richiesta d'aiuto, vediamo che succede
Titolo: Re:ZenGL : Texture
Inserito da: nomorelogic - Maggio 05, 2012, 09:48:26 pm
bingooooooooooooooooooooooooooooooooooooooooooooooooooo

mi hanno risposto sul forum, usavo la funzione sbagliata...
http://zengl.org/forum/index.php/topic,279.new.html#new (http://zengl.org/forum/index.php/topic,279.new.html#new)
basta sostituire la procedura Timer con quella sotto e tutto fila che è un piacere!

credo di si ma aspetto che mi confermiate che funziona anche su win

Codice: [Seleziona]
procedure Timer;
  var
    i : Integer;
begin
  INC( time, 2 );

  // camMain.Angle := camMain.Angle + cos( time / 1000 ) / 10; // nomorelogic: niente rotazione

  for i := 0 to 20 do
    begin
      INC( tux[ i ].Frame );
      if tux[ i ].Frame > 20 Then
        tux[ i ].Frame := 2;
    end;
  for i := 0 to 9 do
    begin
      tux[ i ].Pos.X := tux[ i ].Pos.X + 1.5;
      if tux[ i ].Pos.X > 864 Then
        tux[ i ].Pos.X := -96;
    end;
  for i := 10 to 19 do
    begin
      tux[ i ].Pos.X := tux[ i ].Pos.X - 1.5;
      if tux[ i ].Pos.X < -96 Then
        tux[ i ].Pos.X := 864;
    end;

  if key_Press( K_ESCAPE ) Then zgl_Exit();

  if key_Down( K_UP ) Then
     tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y - tux[ 20 ].DeltaY;
  if key_Down( K_DOWN ) Then
     tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + tux[ 20 ].DeltaY;
  if key_Down( K_LEFT ) Then
     tux[ 20 ].Pos.X := tux[ 20 ].Pos.X - tux[ 20 ].DeltaX;
  if key_Down( K_RIGHT ) Then
     tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + tux[ 20 ].DeltaX;

  // nomorelogic: joypad movimento "analogico"
  tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + (tux[ 20 ].DeltaX * joy_AxisPos( 0, JOY_AXIS_X ));
  tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + (tux[ 20 ].DeltaY * joy_AxisPos( 0, JOY_AXIS_Y ));

  // nomorelogic: joypad movimento "digitale"
  tux[ 20 ].Pos.X := tux[ 20 ].Pos.X + (tux[ 20 ].DeltaX * joy_AxisPos( 0, JOY_POVX ));
  tux[ 20 ].Pos.Y := tux[ 20 ].Pos.Y + (tux[ 20 ].DeltaY * joy_AxisPos( 0, JOY_POVY ));

  // RU: Обязательно очищаем состояния.
  // EN: Necessarily clear all the states.
  key_ClearState();
  // mouse_ClearState();
  joy_ClearState();

end;
Titolo: Re:ZenGL : Texture
Inserito da: Stilgar - Maggio 06, 2012, 01:25:21 am
Confermo ;)