Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Prg on December 29, 2009, 10:38:56 PM

Title: mover la segunda imagen del scroll
Post by: Prg on December 29, 2009, 10:38:56 PM
hola, tengo el siguiente código, en el cual intento mover el segundo fondo del scroll, sin embargo no se mueve nada, y si lo hace lo hace de forma automática cuando muevo el primero pero sólo durante uan parte del primer scroll, y luego deja de hacerlo.

[code language="bennu"]private
fondo2,scroll_g;
begin
set_mode(320,240,32);
        scroll_g=load_png('nombre.png');
   define_region(1,0,0,320,200);
   fondo2=load_png('fondo1_16.png');
   start_scroll(0,0,scroll_g,fondo2,1,0);
loop

      
      if (key(_space))
              if (key(_UP)) scroll.y1--; end
              if (key(_down)) scroll.y1++; end
              if (key(_left)) scroll.x1--; end
              if (key(_right)) scroll.x1++; end
      else
              if (key(_UP)) scroll.y0--; end
              if (key(_down)) scroll.y0++; end
              if (key(_left)) scroll.x0--; end
              if (key(_right)) scroll.x0++; end
      end

if (key(_esc) or exit_status) exit(); end
frame;
end
end[/code]

alguien sabe como moverlo manualmente, o almenos que se mueva en todo el scroll principal (la primera imagen del scroll).

adjunto codigo con graficos.
Title: Re: mover la segunda imagen del scroll
Post by: Drumpi on December 31, 2009, 02:11:52 AM
Tengo demasiado sueño como para leer/descargar código, así que vy a soltar una burrada:
¿Puede ser que el scroll haya llegado al límite de la imagen? Te recomiendo que para este tipo de pruebas actives los flags de scroll cíclico horizontal y vertical en ambos planos (si no recuerdo mal: 1+2+4+8).
Title: Re: mover la segunda imagen del scroll
Post by: Prg on December 31, 2009, 03:01:51 PM
hola amigo, duerme  ;)
la pantalla es de 320,240
el primer scroll es de 800x600, creo.
el segundo es de 350x260
así que creo que debería funcionar bien, tengo tiempo con este problema, no lo había comentado porque esperaba que fuera algo temporal, o una burrada, pero no lo logro solucionar, y ya me enfadé de buscar sin encontrar la solución.

activarlo cíclico seguro funcionará, pero debería moverse uniformemente mientras el primero se mueve no es así? (como lo hacía en el div2)
Title: Re: mover la segunda imagen del scroll
Post by: BoMbErLiNk on December 31, 2009, 03:29:01 PM
Según veo llamas a un scroll no ciclico (debería ser flags 4 si quieres que el plano de atrás que es más pequeño se repita) y luego tratas de mover ambos planos a la misma velocidad manualmente, es decir si el plano principal lo mueves a 4x el del fondo debería ser a 2x para notar la diferencia por ejemplo.

Si te interesa más un scroll manejado por una camara (como en div), mira este ejemplo :

[code language="bennu"]
Program ejemplo_scroll;

Private
   fichero1;

Begin
   fichero1=load_fpg("mi.fpg");

   start_scroll(INT numero, INT libreria, INT grafico, INT fondo, INT region, 15); // 15 es ambos planos ciclicos en todos los sentidos

   scroll.camera=id; // esto hace el control automatico del scroll

   ctype=c_scroll;
   graph=1; // un cursor o algo
   Loop 
       If (key(_right)) x+=4; End
       If (key(_left)) x-=4; End
       If (key(_down)) y+=4; End
       If (key(_up)) y-=4; End                    
       If (key(_esc)) exit(); End
        Frame;
   End
End
[/code]
Title: Re: mover la segunda imagen del scroll
Post by: Prg on December 31, 2009, 03:44:55 PM
mmm, no es exactamente la idea. creo que mejor resumo la pregunta como:

¿porque el movimiento del segundo scroll no es (en x) (ancho del segundo scroll)/(ancho del primer scroll)*x0?, de esta forma el segundo scroll se movería a lo largo de todo le primer scroll.

si no se puede, ¿lo puedo hacer manualmente? modifico los valores de x1,y1 de la estructura y no pasa nada

Notas:
INT Start_scroll ( <INT scrollnumber> , <INT fileID> , <INT graphID> , <INT backgroundgraphID> , <INT regionnumber> , <INT lockindicator> )
2do scroll=The graphID of the graphic for the background of the scroll window=4to parámetro
Title: Re: mover la segunda imagen del scroll
Post by: Windgate on December 31, 2009, 03:56:51 PM
Cuidado Prg, para poder mover el segundo scroll creo recordar que hay que poner a 0 el valor que mide la "proporción" de desplazamiento entre uno y otro scroll... No recuerdo el nombre de ese campo, mírate la documentación. Si no pones a 0 ese valor el segundo scroll siempre se mueve respecto del primero, por mucho que intentes modificar sus valores... Intenta eso amigo, a ver si te sirve.
Title: Re: mover la segunda imagen del scroll
Post by: Prg on December 31, 2009, 04:22:43 PM
Quote from: Windgate on December 31, 2009, 03:56:51 PM
Cuidado Prg, para poder mover el segundo scroll creo recordar que hay que poner a 0 el valor que mide la "proporción" de desplazamiento entre uno y otro scroll... No recuerdo el nombre de ese campo, mírate la documentación. Si no pones a 0 ese valor el segundo scroll siempre se mueve respecto del primero, por mucho que intentes modificar sus valores... Intenta eso amigo, a ver si te sirve.
wow, no lo sabía, gracias, investigaré eso. muchas gracias :) karma++
Title: Re: mover la segunda imagen del scroll
Post by: Drumpi on December 31, 2009, 05:54:22 PM
scroll.ratio era, si no recuerdo mal: indica el porcentaje de movimiento del gráfico de fondo respecto al gráfico principal: con 50 se mueve a la mitad de velocidad, con 200 se mueve el doble de rápido, etc, etc...

La verdad es que no sabía que los dos planos de scroll estaban "atados" por defecto.
Title: Re: mover la segunda imagen del scroll
Post by: Prg on December 31, 2009, 05:55:43 PM
entiendo gracias a ambos. y karma tambi'en para ti Drumpi.
Title: Re:mover la segunda imagen del scroll
Post by: Erkosone on February 09, 2013, 10:58:28 PM
Vaya.. iba a preguntar yo ahora esto mismo, gracias por la info ;)