Compilar para Caanoo

Started by Yawin, January 06, 2011, 06:54:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

Vale, acabo de verlo. Vaya por dios...

Bueno, ahora nuevo problema. No me pilla los _JKEY_UP  etc...

La jkey.lib es esta:

import "mod_key";
import "mod_joy";
import "mod_proc";

/* -------------------------------------------------------------------------- */

const
   _JKEY_UP        =  0 ;
   _JKEY_UPLEFT    =  1 ;
   _JKEY_LEFT      =  2 ;
   _JKEY_DOWNLEFT  =  3 ;
   _JKEY_DOWN      =  4 ;
   _JKEY_DOWNRIGHT =  5 ;
   _JKEY_RIGHT     =  6 ;
   _JKEY_UPRIGHT   =  7 ;
   _JKEY_MENU      =  8 ;
   _JKEY_SELECT    =  9 ;
   _JKEY_L         = 10 ;
   _JKEY_R         = 11 ;
   _JKEY_A         = 12 ;
   _JKEY_B         = 13 ;
   _JKEY_X         = 14 ;
   _JKEY_Y         = 15 ;
   _JKEY_VOLUP     = 16 ;
   _JKEY_VOLDOWN   = 17 ;
   _JKEY_CLICK     = 18 ;

   _JKEY_LAST      = 19 ;

end

/* -------------------------------------------------------------------------- */

#define jkeys_controler()    _jkeys_old_version=1;jkeys_init()

/* -------------------------------------------------------------------------- */

global
   int _jkeys_exit = 0;
   int _jkeys_old_version = 0;
   int jkeys[_JKEY_LAST];
   int jkeys_state[_JKEY_LAST];
end

/* -------------------------------------------------------------------------- */

function jkeys_set_default_keys()
begin
   jkeys[ _JKEY_UP        ] = _UP ;
   jkeys[ _JKEY_UPLEFT    ] = 0 ;
   jkeys[ _JKEY_LEFT      ] = _LEFT ;
   jkeys[ _JKEY_DOWNLEFT  ] = 0 ;
   jkeys[ _JKEY_DOWN      ] = _DOWN ;
   jkeys[ _JKEY_DOWNRIGHT ] = 0 ;
   jkeys[ _JKEY_RIGHT     ] = _RIGHT ;
   jkeys[ _JKEY_UPRIGHT   ] = 0 ;
   jkeys[ _JKEY_MENU      ] = _ESC ;
   jkeys[ _JKEY_SELECT    ] = _ENTER ;
   jkeys[ _JKEY_L         ] = 0 ;
   jkeys[ _JKEY_R         ] = 0 ;
   jkeys[ _JKEY_A         ] = _A ;
   jkeys[ _JKEY_B         ] = _D ;
   jkeys[ _JKEY_X         ] = _S ;
   jkeys[ _JKEY_Y         ] = _W ;
   jkeys[ _JKEY_VOLUP     ] = 0 ;
   jkeys[ _JKEY_VOLDOWN   ] = 0 ;
   jkeys[ _JKEY_CLICK     ] = 0 ;

end

/* -------------------------------------------------------------------------- */

process jkeys_init()
private
   i;
#if 0
   axis_x, axis_y;
#endif
begin
   signal_action( s_kill, s_ign );
   signal( type jkeys_init, s_kill );
   signal_action( s_kill, s_dfl );

   priority = 999999;

   loop
       for ( i = 0; i < _JKEY_LAST; i++ )
           if ( jkeys[i] )
               jkeys_state[i] = key( jkeys[i] );
           else
               jkeys_state[i] = 0;
           end
       end

       switch ( os_id )
           case    OS_GP2X_WIZ, OS_CAANOO: /* Wiz */
                   jkeys_state[ _JKEY_UP        ] |= joy_getbutton( 0, _JKEY_UP        );
                   jkeys_state[ _JKEY_UPLEFT    ] |= joy_getbutton( 0, _JKEY_UPLEFT    );
                   jkeys_state[ _JKEY_LEFT      ] |= joy_getbutton( 0, _JKEY_LEFT      );
                   jkeys_state[ _JKEY_DOWNLEFT  ] |= joy_getbutton( 0, _JKEY_DOWNLEFT  );
                   jkeys_state[ _JKEY_DOWN      ] |= joy_getbutton( 0, _JKEY_DOWN      );
                   jkeys_state[ _JKEY_DOWNRIGHT ] |= joy_getbutton( 0, _JKEY_DOWNRIGHT );
                   jkeys_state[ _JKEY_RIGHT     ] |= joy_getbutton( 0, _JKEY_RIGHT     );
                   jkeys_state[ _JKEY_UPRIGHT   ] |= joy_getbutton( 0, _JKEY_UPRIGHT   );
                   jkeys_state[ _JKEY_MENU      ] |= joy_getbutton( 0, _JKEY_MENU      );
                   jkeys_state[ _JKEY_SELECT    ] |= joy_getbutton( 0, _JKEY_SELECT    );
                   jkeys_state[ _JKEY_L         ] |= joy_getbutton( 0, _JKEY_L         );
                   jkeys_state[ _JKEY_R         ] |= joy_getbutton( 0, _JKEY_R         );
                   jkeys_state[ _JKEY_A         ] |= joy_getbutton( 0, _JKEY_A         );
                   jkeys_state[ _JKEY_B         ] |= joy_getbutton( 0, _JKEY_B         );
                   jkeys_state[ _JKEY_X         ] |= joy_getbutton( 0, _JKEY_X         );
                   jkeys_state[ _JKEY_Y         ] |= joy_getbutton( 0, _JKEY_Y         );
                   jkeys_state[ _JKEY_VOLUP     ] |= joy_getbutton( 0, _JKEY_VOLUP     );
                   jkeys_state[ _JKEY_VOLDOWN   ] |= joy_getbutton( 0, _JKEY_VOLDOWN   );
                   jkeys_state[ _JKEY_CLICK     ] |= joy_getbutton( 0, _JKEY_CLICK     );

                   jkeys_state[ _JKEY_UP        ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_UPRIGHT   ] ;
                   jkeys_state[ _JKEY_DOWN      ] |= jkeys_state[ _JKEY_DOWNRIGHT ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
                   jkeys_state[ _JKEY_LEFT      ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
                   jkeys_state[ _JKEY_RIGHT     ] |= jkeys_state[ _JKEY_UPRIGHT   ] | jkeys_state[ _JKEY_DOWNRIGHT ] ;
           end

#if 0
           case    OS_CAANOO: /* Caanoo */

                   axis_x = joy_getaxis( 2, 0 );
                   axis_y = joy_getaxis( 2, 1 );

                   jkeys_state[ _JKEY_UP        ] |= ( axis_y < -16384 );
                   jkeys_state[ _JKEY_UPLEFT    ] |= ( axis_y < -16384 ) && ( axis_x < -16384 );
                   jkeys_state[ _JKEY_LEFT      ] |=                        ( axis_x < -16384 );
                   jkeys_state[ _JKEY_DOWNLEFT  ] |= ( axis_y >  16384 ) && ( axis_x < -16384 );
                   jkeys_state[ _JKEY_DOWN      ] |= ( axis_y >  16384 );
                   jkeys_state[ _JKEY_DOWNRIGHT ] |= ( axis_y >  16384 ) && ( axis_x > 16384 );
                   jkeys_state[ _JKEY_RIGHT     ] |=                        ( axis_x > 16384 );
                   jkeys_state[ _JKEY_UPRIGHT   ] |= ( axis_y < -16384 ) && ( axis_x > 16384 );
                   jkeys_state[ _JKEY_MENU      ] |= joy_getbutton( 0, _JKEY_MENU      );
                   jkeys_state[ _JKEY_SELECT    ] |= joy_getbutton( 0, _JKEY_SELECT    );
                   jkeys_state[ _JKEY_L         ] |= joy_getbutton( 0, _JKEY_L         );
                   jkeys_state[ _JKEY_R         ] |= joy_getbutton( 0, _JKEY_R         );
                   jkeys_state[ _JKEY_A         ] |= joy_getbutton( 0, _JKEY_A         );
                   jkeys_state[ _JKEY_B         ] |= joy_getbutton( 0, _JKEY_B         );
                   jkeys_state[ _JKEY_X         ] |= joy_getbutton( 0, _JKEY_X         );
                   jkeys_state[ _JKEY_Y         ] |= joy_getbutton( 0, _JKEY_Y         );
                   jkeys_state[ _JKEY_VOLUP     ] |= joy_getbutton( 0, _JKEY_VOLUP     );
                   jkeys_state[ _JKEY_VOLDOWN   ] |= joy_getbutton( 0, _JKEY_VOLDOWN   );
                   jkeys_state[ _JKEY_CLICK     ] |= joy_getbutton( 0, _JKEY_CLICK     );

                   jkeys_state[ _JKEY_UP        ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_UPRIGHT   ] ;
                   jkeys_state[ _JKEY_DOWN      ] |= jkeys_state[ _JKEY_DOWNRIGHT ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
                   jkeys_state[ _JKEY_LEFT      ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
                   jkeys_state[ _JKEY_RIGHT     ] |= jkeys_state[ _JKEY_UPRIGHT   ] | jkeys_state[ _JKEY_DOWNRIGHT ] ;
           end
#endif
       end

       frame;
   end

onexit:
   if ( !_jkeys_exit && !_jkeys_old_version ) jkeys_init(); end

end

/* -------------------------------------------------------------------------- */

function jkeys_exit()
begin
   _jkeys_exit = 1;
   signal( type jkeys_init, s_kill );
end

/* -------------------------------------------------------------------------- */


Que yo sepa es la buena no?

Pues no me pilla ni una tecla... bueno, no exáctamente. Me las pilla como si estuviesen todo el rato pulsadas. Aunque las de _JKEY_UP, _JKEY_DOWN, _JKEY_LEFT, _JKEY_RIGHT se supone que son del joystick ese chiquitín no?? Porque ese ni lo pulsa todo el rato, ni responde a él. Y le he dicho que el disparo sea _JKEY_B y lo que hace es disparar todo el rato.

¿Qué ocurre?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

tenes que hacer un

jkeys_set_default_keys();

luego un

jkeys_init();

y antes de salir un

jkeys_exit();
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

las dos primeras irían justo después del begin?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

FreeYourMind

Y porque se tiene que poner al salir ? Ya sólo faltaria ponerte a descargar todos los recursos al salir tambien xDDD

Yawin

he puesto el main asi y sigue sin ir:

PROCESS Main()
PRIVATE
string arg;
END
BEGIN
jkeys_set_default_keys();
jkeys_init();
idfich=fopen("dll/punts_ind.yawin",1);
for(i=0;i<5;i++)
puntuaciones[i]=fgets(idfich);
end
set_mode(320,240,16);
set_fps(60,1);
Graficos=load_fpg("dll/prueba.fpg");
//sonn[0]=load_wav("sounds/054-Cannon03.ogg");
//sonn[1]=load_wav("sounds/057-Wrong01.wav");
//set_wav_volume(sonn[0],35);
Put_screen(graficos,1);

nav=Nave();
vida();
energia_nave();
musica();
Start_scroll(0,graficos,1,0,0,2);

write(0,51,40,1," Tu puntuación");
write_var(0,51,50,1,Punt);
write(0,60,65,1," Naves destruidas");
write_var(0,50,75,1,Matados);

conts=retard;
LOOP
scroll[0].y0=scroll[0].y0-2;
if(rand(1,1000)<=rand(1,15))
conts-=1;
if(conts<=0)
paquete_mejora(rand(0,320),rand(3,4));
conts=retard;
end
end
If(rand(0,100)<(Punt/100))
enemigo(rand(0,320), rand(-3,3),rand(1,3));
End
//if (_JKEY_MENU) break; end
FRAME;
If (vidas<=0)
break;
End
END
let_me_alone();

fclose(idfich);
idfich=fopen("dll/punts_ind.yawin",2);
for(i=0;i<5;i++)
if(puntuaciones[i]<Punt)
a=i;
for(i=4;i>a;i--)
puntuaciones[i]=puntuaciones[i-1];
end
puntuaciones[a]=punt;
i=5;
end
end
for(i=0;i<5;i++)
fputs(idfich, puntuaciones[i]);
end
delete_text(0);
write(0,200,100,1,"MEJORES PUNTUACIONES");
for(i=0;i<5;i++)
write_var(0,200, 120+(i*10),1, puntuaciones[i]);
end
write(0,118,100,1,"FIN DEL JUEGO");
write(0,120,120,1,"Tu puntuación");
write_var(0,120,130,1,Punt);
write(0,119,145,1,"Naves destruidas");
write_var(0,120,155,1,Matados);
write(0,219,185,1,"Pulsa R para continuar");
repeat
frame;
until(_JKEY_R);
arg="Ejecutar.bat";
//exec(_P_NOWAIT,"Ejecutar.bat",1,&arg);
Unload_fpg(graficos);
jkeys_exit();
exit(0);

END
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

Quote from: yawin on January 06, 2011, 09:50:05 PM
las dos primeras irían justo después del begin?

si

Quote from: FreeYourMind on January 06, 2011, 09:51:14 PM
Y porque se tiene que poner al salir ? Ya sólo faltaria ponerte a descargar todos los recursos al salir tambien xDDD

eso lo deberias saber...

la respuesta es simple, porque es un controlador que se respawnea cuando se lo mata, por ende necesita otro metodo para morir, sino la aplicacion completa no saldra nunca, ni con un let_me_alone, creo que ni siquiera saldria con un exit... pero no me acuerdo, igualmente, la mayoria de las personas no usan exit... y si tenes un init, lo logico es que tengas un exit.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

claro, no va, porque eso no compila.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

y en qué falla??
porque la Caanoo cuando compila no me dice qué falla xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

te recomiendo que primero lo intentes compilar en la pc.

te falla que no tenes un monton de modulos importados, y tambien un monton de variables sin definir.

eso se ve sin necesidad de compilar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

Esque me da un error con la jkey.lib

Me dice...
"Unknown identifier ("OS_CAANOO")

En la línea 96
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

tambien estas usando mal la funcion...

te recomiendo que chequees los ejemplos que vienen con el runtime?

no es (que ademas esta comentado):

      //if (_JKEY_MENU) break; end

sino que es

      IF (jkeys_state[_JKEY_MENU]) break; end
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

estaba comentado, porque si no, se salía automáticamente. Voy a probar. Miles de gracias por vuestra ayuda.

Siento mis molestos problemas uno tras otro.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

no hay problema, pregunta todo lo que quieras, solo te sugiero que veas los ejemplos, porque estan simples y te pueden aclarar muchas cosas.

quizas los mas simples son los de test_keys o test_joys o el de los acelerometros, porque son cortitos.

por otro lado, me olvide, felicitaciones por tu Caanoo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

jajajaja, gracias. Fue tan sencillo como decirles a "los reyes" quieto esto y enseñarles una web donde comprarla impresa
xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

Quote from: yawin on January 06, 2011, 10:10:26 PM
jajajaja, gracias. Fue tan sencillo como decirles a "los reyes" quieto esto y enseñarles una web donde comprarla impresa
xD


despues dicen que los reyes no existen! aca hay alguien que confirma que si existen! :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2