aquie esta el link con todas las ultimas modificacioens del programa;recuerda es algo bastante sencillo x ahora; hay unas cosas como la variable proceso y el cursor q no tiene importancia ;pues qse que para que este funcione devo declarar set mode = al al grafico de fondo y demas ;solo lo ise para ver como funcionaba y me olvide de borrarlo ; de momento mi preocupacion esta en la animacion al retroceder
http://rapidshare.de/files/47992086/prg_x_mi.rar.html
unas cuantas preguntas
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: unas cuantas preguntas
Ok lo he examinado y creo que esta como lo quieres tu, el codigo es asi ahora:
Empezamos con las animaciones: ahora hay 2 monstruos, 1 puesto adelante al personaje y otro detras (pero siempre en la misma posicion del mapa) de esa forma en cualquier direcion te moveras siempre estara visible si llegas al punto donde esta situado...
Sobre el proceso PERSONAJE como ves se resetea X cuando llegamos al punto final del mapa (por la izquierda o derecha), ademas he quitado la variable usada para el grafico de animacion, ya que no lo necesitas, es suficiente modificar directamente GRAPH.
Creo que esto era lo que necesitabas, si asi no es o necesitas otro, como siempre pregunta.
Saludos.
Code: Select all
Program GAME2;
Begin
RATON();
PERSONAJE();
animacion(500,180,18);
animacion(-1560,180,18);
...........
//********************
PROCESS PERSONAJE();
BEGIN
GRAPH=4;
Z=-5;
x=0;y=220;
CTYPE=C_SCROLL;
SCROLL.CAMERA=ID;
write_int(0, 160, 30, 4, &x);
write_int(0, 160, 40, 4, &y);
LOOP
IF(KEY(_LEFT))
x-=3;
graph--;
if(graph < 3) graph = 17; end
END
IF(KEY(_RIGHT))
x+=3;
graph++;
if(graph > 17) graph = 3; end
end
if(x < -2048 || x > 2048)
x=0;
END
FRAME;
END
END
Sobre el proceso PERSONAJE como ves se resetea X cuando llegamos al punto final del mapa (por la izquierda o derecha), ademas he quitado la variable usada para el grafico de animacion, ya que no lo necesitas, es suficiente modificar directamente GRAPH.
Creo que esto era lo que necesitabas, si asi no es o necesitas otro, como siempre pregunta.
Saludos.
-
ignacio
- Posts: 339
- Joined: Mon Jan 26, 2009 9:19 pm
Re: unas cuantas preguntas
hola primero quiero agradecer por tus sugerencias ;exlentes y sencillas de entneder, pero sin querer molestarte ,es solo q me gusta complicarmela y de esa forma aprender a hacer formas mas creativas y rebuscadas, no hay forma de hacerlo si ndeclarar 2 animaciones
aproposito si lo notaste o no el moustru de la animacion creo q seria la fucion entre spawn y venom ja.
desde ya gracias
aproposito si lo notaste o no el moustru de la animacion creo q seria la fucion entre spawn y venom ja.
desde ya gracias
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: unas cuantas preguntas
Si hay, una forma podria ser la seguiente:
1 - creas el proceso animacion, obtenendo su ID y guardandolo en una variable global
2 - setear la posicion X del proceso animacion en funcion de la posicion X nevativa o positiva del proceso protagonista.
Su implementacion seria:
No lo he probado, pero deberia funcionar, ya me diras tu.
1 - creas el proceso animacion, obtenendo su ID y guardandolo en una variable global
2 - setear la posicion X del proceso animacion en funcion de la posicion X nevativa o positiva del proceso protagonista.
Su implementacion seria:
Code: Select all
id_animation = animacion(500,180,18);
......
//********************
PROCESS PERSONAJE();
BEGIN
GRAPH=4;
Z=-5;
x=0;y=220;
CTYPE=C_SCROLL;
SCROLL.CAMERA=ID;
write_int(0, 160, 30, 4, &x);
write_int(0, 160, 40, 4, &y);
LOOP
IF(KEY(_LEFT))
x-=3;
graph--;
if(graph < 3) graph = 17; end
END
IF(KEY(_RIGHT))
x+=3;
graph++;
if(graph > 17) graph = 3; end
end
if(x < -2048 || x > 2048)
x=0;
END
if(x < 0)
id_animation.x = -1560;
elseif(x >= 0)
id_animation.x = 500;
end
FRAME;
END
END
-
ignacio
- Posts: 339
- Joined: Mon Jan 26, 2009 9:19 pm
Re: unas cuantas preguntas
nuevamente graias estoy en deuda con tigo; pero tengo una pregunta un poco choga:las lineas write_int(0, 160, 30, 4, &x);
write_int(0, 160, 40, 4, &y); son para ver las coordenadas en x e y del personaje cierto¿?
write_int(0, 160, 40, 4, &y); son para ver las coordenadas en x e y del personaje cierto¿?
-
ignacio
- Posts: 339
- Joined: Mon Jan 26, 2009 9:19 pm
Re: unas cuantas preguntas
garias jajaja garias = gracias 
-
ignacio
- Posts: 339
- Joined: Mon Jan 26, 2009 9:19 pm
Re: unas cuantas preguntas
SE QUE DESPUES DE ESTO ME VAS A QUERER MATAR Y ME VAS A ODIAR DE POR VIDA... PERO NO ANDA BIEN;NO SE LA ANIMACION AL RETROCEDER Y LE PASA ALGO RARO AL MOUSE;X AHI LO DECLARE DE OTRA FORMA A LA QUE TU DICES;EN FIN ACA TE DEJO UN LINK X SI QUERES VERLO: http://rapidshare.de/files/47995802/prg_x_mi.rar.html
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: unas cuantas preguntas
Pues claro que no funciona, segun tu codigo:
Estas creando 3 procesos animaciones y no 1, (2 antes de SET_MODE y uno despues), tambien el mouse falla porque llamas animation antes del nuevo SET_MODE, para solucionar el todo hay que escribirlo asi:
Sobre los WRITE en el proceso personaje, claro que son para ver las coordenadas, si lo notas le estamos pasando las variables X y Y
Otra cosa que veo es que llamas SET_RENDER_MODE, no es necesario llamarla, sirve cuando quieres cambiar explicitamente el modo de rendering, pero de default el engine setea el mejor para el sistema, puedes quitarla como istruccion.
Code: Select all
Program GAME2; // NOMBRE DEL PROGRAMA.
Global // CREO UN BLOQUE DE VARIABLES GLOBALES
// Global vars block
INT PIXEL;
INT id_ANIMATION; // DEFINO A "PIXEL" COMO UNA VARIABLE NUMERICA.
Begin
ID_ANIMATION=ANIMACION(500,180,18);
ANIMACION(500,180,18); // EMPIEZA EL CODIGO DEL PROGRAMA PRINCIPAL.
set_mode(640, 300, 32 ); // ESTABLEZCO EL MODO GRAFICO.
SET_RENDER_MODE(2, 2); // ESTABLEZCO EL MODO DE RENDERIZADO GRAFICO.
set_fps(16,0); // FIJO A 120 LOS FRAMES POR SEGUNDO.
load_fpg("prueba.fpg");
RATON();
PERSONAJE();
animacion(500,180,18);
WRITE_INT(0,150,46,0,OFFSET PIXEL); // ESCRIVO EN PANTALLA EL VALOR DE LA VARIABLE PIXEL
Code: Select all
Program GAME2; // NOMBRE DEL PROGRAMA.
Global // CREO UN BLOQUE DE VARIABLES GLOBALES
// Global vars block
INT PIXEL;
INT id_ANIMATION; // DEFINO A "PIXEL" COMO UNA VARIABLE NUMERICA.
Begin
set_mode(640, 300, 32 ); // ESTABLEZCO EL MODO GRAFICO.
SET_RENDER_MODE(2, 2); // ESTABLEZCO EL MODO DE RENDERIZADO GRAFICO.
set_fps(16,0); // FIJO A 120 LOS FRAMES POR SEGUNDO.
load_fpg("prueba.fpg");
RATON();
PERSONAJE();
ID_ANIMATION=ANIMACION(500,180,18);
WRITE_INT(0,150,46,0,OFFSET PIXEL); // ESCRIVO EN PANTALLA EL VALOR DE LA VARIABLE PIXEL
...
Otra cosa que veo es que llamas SET_RENDER_MODE, no es necesario llamarla, sirve cuando quieres cambiar explicitamente el modo de rendering, pero de default el engine setea el mejor para el sistema, puedes quitarla como istruccion.
-
ignacio
- Posts: 339
- Joined: Mon Jan 26, 2009 9:19 pm
Re: unas cuantas preguntas
exelente muchas gracias; disculpa te haya molestado tanto;jeje. al fianl anduvo estuve analizandolo el codigo q me dijiste de hacer ; lo e entendido es solo q soy algo bastante despistado para algunas cosas ;pero desde ya gracias