mover un personaje por el scroll mediante el raton - ayuda

Started by chuflun, September 03, 2010, 01:31:35 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

chuflun

hola, estoy intentando mover a un soldado por el scroll, como en el "red alert" o cualquier juego de estrategia en tiempo real, y cuando lo mando al borde derecho del scroll, no llega mas que hasta 1280 pixeles que es la resolucion que he puesto.
podeis ayudarme, no se donde tengo que poner ctype = c_scroll; y donde no.
gracias
aqui os pongo el codigo de mi personaje, raton, y camara
PROCESS protagonista()


BEGIN

ctype = C_scroll;
file = fpg_fondo;
graph = 2;
size = 100;


x=400;
y = 400;
Z = -1;


LOOP


if(mouse.left==true)
posx=raton().x;
posy=raton().y;
mouse.left=false;
end

if(x>posx); x=x-10; end
if(x<posx); x=x+10; end
if(y>posy); y=y-10; end
if(y<posy); y=y+10; end

FRAME;

END

END


process raton();
begin
mouse.file = fpg_raton;
mouse.graph = 1;
file = fpg_raton;
ctype = c_scroll;
graph=5;
z=-100;
loop

x=mouse.x;
y=mouse.y;

frame;
end
end


PROCESS camara()



begin
//ctype = C_scroll;

loop

if (raton().x > 100)
scroll[0].x0+=10;
elseif (raton().x < 20)
scroll[0].x0-=10;
end


FRAME;

END

END

Prg

creo que puedes cambiar un poco el codigo, mira:

[code language="bennu"]
begin //proceso principal
mouse.file = fpg_raton;
   mouse.graph = 1;   //colocas al mouse su grafico
loop
frame;
end
end
PROCESS protagonista()


BEGIN
   
   ctype = C_scroll;   //esto aquí si va
   file = fpg_fondo;
   graph = 2;         
   size = 100;
   
   
   x=400;                  
   y = 400;               
   Z = -1;
      
   
   LOOP
            

      if(mouse.left==true)
         posx=mouse.x + scroll.x0; //esto permite moverte  en las coordenadas del scroll con el ratón
         posy=mouse.y + scroll.y0;
         mouse.left=false;
      end
      
      if(x>posx); x=x-10; end
      if(x
      if(y>posy); y=y-10; end
      if(y
      
      FRAME;
      
   END

END

PROCESS camara()



begin
   loop
         
      if (raton().x > 100)
         scroll[0].x0+=10;         
      elseif (raton().x < 20)
         scroll[0].x0-=10;
      end
      
            
      FRAME;
      
   END

END

[/code]
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

chuflun

gracias, ya me funciona, lo que me faltaba era sumar a la posicion del mouse el scroll.x0

Prg

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)