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.
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).
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)
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]
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
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.
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++
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.
entiendo gracias a ambos. y karma tambi'en para ti Drumpi.
Vaya.. iba a preguntar yo ahora esto mismo, gracias por la info ;)