PDA

Ver la versión completa : El 'raton' en la gp2x



bleim
13/01/2006, 06:30
Hola!
Vamos con el ratón. El muy ****** no aparece, y eso que sí me ha llegado a aparecer alguna vez, pero ahora se ha escondido en su madriguera y no hay manera :D

Veamos
Primero cargamos el fpg del raton con load_fpg.
Despues hacemos esto:

mouse.file=fpg_raton;
mouse.graph=4; //un grafico de raton
mouse.x=250; mouse.y=220; //una posicion cualquiera

Y despues va un bucle LOOP FRAME; END

Dentro del bucle tenemos esto para moverlo con el stick (en plan lento)
if(key(_left)) mouse.x-=2; END
if(key(_right)) mouse.x+=2; END
if(key(_up)) mouse.y-=2; END
if(key(_down)) mouse.y+=2; END

IF(key(_alt)) exit(0); END //salir del juego programa el boton B


Obviamente pulsando B salimos del programa (si no hay que apagar la consola).

¿Por qué no aparece? ¿Se me olvida algo?
:(

bleim
13/01/2006, 06:54
Este archivo carga un archivo con un grafico de raton cualquiera y lo muestra por pantalla. Se puede mover con el stick y salir con el B. El grafico del FPG debe estar con el numero 4 (un capricho vamos; buscad en el codigo y cambiad a 1 si quereis) o no aparecera nada.


nota: renombrar a rata2x.prg

BUHOnero
13/01/2006, 06:58
El problema es que me parece que en la GP no puedes asignar nada al raton, no está mapeado, así que haz un gráfico que se mueva con teclas y asígnale un gráfico, en teoria tu programa funciona en PC no¿?

bleim
13/01/2006, 06:59
Perdonar pero no he puesto que el FPG del raton debe estar en la carpeta FPG con nombre raton.fpg para el ejemplo que he puesto.

Y Sí, rula en la gp2x.

BUHOnero
13/01/2006, 07:02
Tendré que ponerme con el Fenix para la GP2x, en la GP32 no se puede, o eso tenía entendido... a ver si lo arreglas, y ya te pediré ayuda cuando em encuentre atascado, que veo que vas por delante :)

bleim
13/01/2006, 07:06
A ver, este archivo es un pack con todo lo que necesitas para ver lo del raton.
Incluye el ejecutable y el .gpe para poder lanzarlo desde la gp. he quitado lo del subdirectorio para que el fpg este con el resto.

BUHOnero
13/01/2006, 07:10
No se si es buena idea, pero te propongo que metas todo lo del raton en un proceso aparte, eso de meter bucles en el programa principal me da mala espina... yo es que siempre lanzo procesos y en el programa principal solo dejo un loop con un frame interno... prueba a ver que tal

Tambien podrias intentar poner:

if(key(_left)) mouse.x-=2; frame; END

no se si iría entre corchetes :rolleyes:

Hokutoy
13/01/2006, 07:30
Esta guay pero no pilla las diagonales en la GP2x... cosas del port.
Creo que esta version del Fenix pilla el comando INT GET_JOY_POSITION y la de INT GET_JOY_Button por lo que se podra hacer pleno uso del Stick de la Gp2x... aunque eso quitaría la compatibilidad con la GP32.

Habrá que esperara a una nueva beta del Fenix.

Jhonnystorm
14/01/2006, 07:33
por que no lo utilizas como su fuera un sprite sin utilizar la instruccion mouse:

Program CONVERSOR2X;

Global
//contador
contador;

//fpg's
fpg_raton;



Begin
set_mode(m320x240);
set_title("rata v1.0");


fpg_raton=load_fpg("raton.fpg");
graph=4; //un grafico de raton
x=250; y=220; //una posicion cualquiera

Loop

If(key(_left)) x-=2; End
If(key(_right)) x+=2; End
If(key(_up)) y-=2; End
If(key(_down)) y+=2; End

If(key(_alt)) exit(0); End //salir del juego programa el boton B

Frame;
End


End


de esta manera no tendrias que utilizar la instruccion, si te sirve de algo....

chemaris
14/01/2006, 08:05
un ejemplo usando las 8 direcciones "nativamente" es del movimiento del personaje del antipong ligeramente retocado

Program
Antipong;
Global
up,upleft,left,downleft,down,downright,right,uprig ht,bstart;
fpg_raton;
Begin
fpg_raton=load_fpg("raton.fpg");
raton(x,y);
End

Process botones();
Begin
select_joy(0);
Loop
up=get_joy_button(0);
upleft=get_joy_button(1);
left=get_joy_button(2);
downleft=get_joy_button(3);
down=get_joy_button(4);
downright=get_joy_button(5);
right=get_joy_button(6);
upright=get_joy_button(7);
bstart=get_joy_button(8);
Frame;
End
End

Process raton(x,y);
Begin
graph=2;
botones();
Loop
If(left==1); x-=7; End
If(right==1); x+=7; End
If(down==1); y+=7; End
If(up==1); y-=7; End
If(upleft==1); x-=7; y-=7; End
If(upright==1); x+=7; y-=7; End
If(downleft==1); x-=7; y+=7; End
If(downright==1); x+=7; y+=7; End
If(bstart==1); exit(0,""); End
Frame;
End
End

bleim
14/01/2006, 17:26
por que no lo utilizas como su fuera un sprite sin utilizar la instruccion mouse:

Program CONVERSOR2X;

Global
//contador
contador;

//fpg's
fpg_raton;



Begin
set_mode(m320x240);
set_title("rata v1.0");


fpg_raton=load_fpg("raton.fpg");
graph=4; //un grafico de raton
x=250; y=220; //una posicion cualquiera

Loop

If(key(_left)) x-=2; End
If(key(_right)) x+=2; End
If(key(_up)) y-=2; End
If(key(_down)) y+=2; End

If(key(_alt)) exit(0); End //salir del juego programa el boton B

Frame;
End


End


de esta manera no tendrias que utilizar la instruccion, si te sirve de algo....


No me vale. En el ejemplo que pones cuando dices
x+=2;
¿Qué es lo que estás moviendo exactamente? Pues es proceso principal, que en este ejemplo es único, pero en un programa más grande, el proceso ppal no es recomendable usarlo como "personaje", si no como control. Yo creo que queda más claro lo de mouse o bien lo de joy, pero lo cierto es que uno tiene que usar lo que mejor le convenga.

Yo uso mouse porque esa funcion en mi juego de pc la hacia el raton y quiero tocar lo menos posible el programa.
Despues, a la hora de jugar, usare joy porque asi en un futuro puedo usar las diagonales (en mijuego de pc no usaba las diagonales).

saludos!