Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Garreny on February 21, 2010, 05:01:18 PM

Title: Problema con el juego
Post by: Garreny on February 21, 2010, 05:01:18 PM
Bien, ante todo, decir que me han recomendado este foro para exponer mis problemas, y se os ve tan enterados que voy a aprovecharme  ;D
El hecho es que acabo de empezar a programar con fenix, pero me ha surgido un problemilla.
Siguiendo un tutorial que me ha dejado a medias, he hecho un pong, pero tengo un problema con los rebotes. La pelota rebota perfectamente con las paredes superior e inferior, pero no con las palas.
La bola sale disparada hacia la derecha, y tendría que rebotar contra la pala 2, pero no lo hace.
Aquí os dejo el código:



QuoteProgram MEUPONG;
Global

 
  int RESOLUCION_X;
  int RESOLUCION_Y;

  // GLOBALS
  int Velocidad_Paletas;

  // PALETA 1  
  int X_Paleta_1;
  int Y_Paleta_1;
  int Ancho_Paleta_1;
  int Alto_Paleta_1;
  int color_paleta_1;

  // PALETA 2
  int X_Paleta_2;
  int Y_Paleta_2;
  int Ancho_Paleta_2;
  int Alto_Paleta_2;
  int color_paleta_2;

  // BOLA
  int X_Bola;
  int Y_Bola;
  int Ancho_Bola;
  int Alto_Bola;
  int Color_Bola;
  int Velocidad_Bola_X;
  int Velocidad_Bola_Y;
  int max_velocidad;

BEGIN

 

  set_title("El meu primer Pong");
  Full_screen = false;
  Graph_mode = mode_16bits;
  set_mode (m640x480);
  set_fps(80, 60/10);
 
  RESOLUCION_X = 640;
  RESOLUCION_Y = 480;

 
  write(0,10,10,0,"El meu primer Pong, v. 0.01");
  write(0,10,20,0,"Equip Garreny");
  write_int(0,300,10,1,&fps);

 
  Controlador_Juego(); //Arranquem el controlador del joc
END


Process Controlador_Juego()
BEGIN

  Inicializar();

  Loop

     If(key(_esc))  
        exit(0,0);
     End

  Actualizar();
 
  Dibujar();

     Frame;
  End
END



Process Inicializar()
BEGIN

  Velocidad_Paletas = 5;

  // PALETA 1
  X_Paleta_1=30;
  Y_Paleta_1=240;
  Ancho_paleta_1=20;
  Alto_Paleta_1=100;

  // PALETA 2
  X_Paleta_2=610;
  Y_Paleta_2=240;
  Ancho_paleta_2=20;
  Alto_Paleta_2=100;

  // BOLA

  X_Bola=320;
  Y_Bola=240;
  Ancho_Bola=15;
  Alto_Bola=15;
  Velocidad_Bola_X = 1;
  Velocidad_Bola_Y = 1;
  max_velocidad = 3/2;
  max_velocidad = 3/2;

END


Process Dibujar()
Begin

  clear_screen();
  drawing_map(0,0);

  // Paleta 1

  drawing_color(rgb(25,55,255));
  draw_box(X_Paleta_1-Ancho_Paleta_1/2, Y_Paleta_1-Alto_Paleta_1/2, X_Paleta_1+Ancho_Paleta_1/2, Y_Paleta_1+Alto_Paleta_1/2);

  // Paleta 2

  drawing_color(rgb(33,63,212));
  draw_box(X_Paleta_2-Ancho_Paleta_2/2, Y_Paleta_2-Alto_Paleta_2/2, X_Paleta_2+Ancho_Paleta_2/2, Y_Paleta_2+Alto_Paleta_2/2);

  // BOLA
 
  drawing_color(rgb(45,200,5));
  draw_box(X_Bola-Ancho_Bola/2, Y_Bola-Alto_Bola/2, X_Bola+Ancho_Bola/2, Y_Bola+Alto_Bola/2);
 
END



Process Actualizar()
Begin

  // PALETA 1

  if(key(_up) AND Y_Paleta_1-Alto_Paleta_1/2 > 50) //Si s' apreta "amunt" i la paleta no ha arribat fins a dalt
     Y_Paleta_1 -=Velocidad_Paletas; // Fem que pugi
  End

  if(key(_down) AND Y_Paleta_1+Alto_Paleta_1/2 < 430) //Si s' apreta "avall" i la paleta no ha aribat abaix
     Y_Paleta_1 +=Velocidad_Paletas; //Fem que baixi
  End


  // PALETA 2

  if(key(_k) AND Y_Paleta_2-Alto_Paleta_2/2 > 50) //Si s' apreta "amunt" i la paleta no ha arribat fins a dalt
     Y_Paleta_2 -=Velocidad_Paletas; // Fem que pugi
  End

  if(key(_m) AND Y_Paleta_2+Alto_Paleta_2/2 < 430) //Si s' apreta "avall" i la paleta no ha aribat abaix
     Y_Paleta_2 +=Velocidad_Paletas; //Fem que baixi
  End

  Control_Bola();
 
End



Process Control_Bola()
Begin

  // PALETA 1

  if(Velocidad_Bola_X < 0 && X_Bola>X_Paleta_1 && (X_Bola-(Ancho_Bola/2))<=(X_Paleta_1+(Ancho_Paleta_1/2)))

     if(abs(Y_Paleta_1-Y_Bola)<(Alto_Paleta_1/2)+(Alto_Bola/2))
        Velocidad_Bola_X = max_velocidad;
     End

  End

  // PALETA 2

  if(Velocidad_Bola_X > 0 && X_Bola<X_Paleta_2 && (X_Bola+(Ancho_Bola/2))>=(X_Paleta_2+(Ancho_Paleta_2/2)))

     if(abs(Y_Paleta_2-Y_Bola)<(Alto_Paleta_2/2)+(Alto_Bola/2))
        Velocidad_Bola_X = -max_velocidad;
     End

  End

   // PARETS SUPERIOR I INFERIOR

  if(Velocidad_Bola_Y<0 && (Y_Bola-(Ancho_Bola/2))<=50)
     Velocidad_Bola_Y = max_velocidad;
  End
 
  if(Velocidad_Bola_Y>0 && (Y_Bola-(Ancho_Bola/2))>=430)
     Velocidad_Bola_Y =-max_velocidad;
  End


  X_Bola+=Velocidad_Bola_X;
  Y_Bola+=Velocidad_Bola_Y;

End

Muchas gracias de antemano!

EDIT: Me he dado cuenta de que no lo he publicado en el subforo adecuado, si algún moderador puede moverlo... Perdón por las molestias.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 21, 2010, 06:39:44 PM
Voy a ver si te lo miro, por cierto no serás brasileño no ?!  ;D
Title: Re: Problema con el juego
Post by: Garreny on February 21, 2010, 06:49:17 PM
No, soy catalán xD
Gracias por mirarlo  :D
Title: Re: Problema con el juego
Post by: Drumpi on February 21, 2010, 06:57:43 PM
Bienvenido al foro, espero que disfrutes de la estancia y que se te resuelva el problema pronto.

....¿nos conocemos? ;D
Title: Re: Problema con el juego
Post by: FreeYourMind on February 21, 2010, 07:00:14 PM
Iba a decir justo eso.

Mira, para que la bola rebote en la barra 2, cambia el '+' por '-':

if(Velocidad_Bola_X > 0 && X_Bola < X_Paleta_2 && (X_Bola + (Ancho_Bola/2)) >= ( X_Paleta_2 - (Ancho_Paleta_2/2)))
Title: Re: Problema con el juego
Post by: SplinterGU on February 21, 2010, 08:01:13 PM
bienvenido, y aprovecho para invitarte a usar Bennu que tiene muchas mejoras con respecto a Fenix... y quizas aca te demos incluso alguna solucion que no funcione 100% en Fenix, al ser este anterior...
Title: Re: Problema con el juego
Post by: Garreny on February 21, 2010, 08:30:17 PM
Quote from: Drumpi on February 21, 2010, 06:57:43 PM
Bienvenido al foro, espero que disfrutes de la estancia y que se te resuelva el problema pronto.

....¿nos conocemos? ;D
Bien que lo sabes, mi gran resuelvedudas!

Bueno, que puedo decir, muchas gracias a todos, y gracias a FreeYourMind ya rebota!
soy feliz!
Muchas gracias!
Ahora voy a intentar hacer el sistema de puntos y que cuando la pelota se salga, reaparezca.
Title: Re: Problema con el juego
Post by: Windgate on February 21, 2010, 08:56:02 PM
Veo tu código, pero no veo el problema... Podrías usar unos cuantos write_var para controlar los valores de las cosas... Seguramente sea alguna suma en la que deberías restar o algo así, veo que collision ( ) no usas.
Title: Re: Problema con el juego
Post by: Garreny on February 21, 2010, 09:04:13 PM
Sí, era una suma que tenía que restar.

Y bueno, he estado toqueteando y he conseguido hacer reaparecer la bola, pero lo que no consigo es que me salga la puntuación.

Esto es lo que tengo de nuevo, contando que está todo debidamente clasificado, con la variable en su sitio:

   int score[0];


   if(X_Bola>641 or X_Bola<-1)
   X_Bola=320;
   End

   if(X_Bola>641)
   score[0]=score[0]+1;
   End
   
   if(X_Bola>641)
   write_int(0,300,10,1,&score[0]);
   End


   if(X_Bola<-1)
   score[1]=score[1]+1;
   End

   if(X_Bola<-1)
   write_int(0,300,10,1,&score[1]);
   End
Title: Re: Problema con el juego
Post by: FreeYourMind on February 21, 2010, 09:35:01 PM
no tienes que definir un vector de score[0], con int score=0; es suficiente.

if(X_Bola>641)
  score= score + 1;
  End
 
  if(X_Bola>641)
  write_int(0,300,10,1,&score);
  End

En tu caso, score1 para la barra 1 y score2 para la barra 2, así es el pong ;)

Por otra parte sólo tienes que incrementar el score1 o score2 dependiendo del caso, la condicion de escribir cada vez que suma no la tienes que poner, esa ponla al principio del programa en un frame; para que te salga siempre y olvidate de tener que escribir siempre que uno suma puntos.
Title: Re: Problema con el juego
Post by: Garreny on February 22, 2010, 02:45:02 PM
He hecho lo que me has dicho, pero los números siguen sin salirme en pantalla.

   int score1;
   int score2;


   if(X_Bola>641)
   write_int(0,300,10,1,&score1);
   Frame;
   End

   if(X_Bola<-1)
   write_int(0,300,10,1,&score2);
   Frame;
   End


   if(X_Bola<-1)
   score2=score2+1;
   Frame;
   End

   if(X_Bola>641)
   score1=score1+1;
   Frame;
   End   

Title: Re: Problema con el juego
Post by: FreeYourMind on February 22, 2010, 03:39:21 PM
el write no tienes que ponerlo en una condicion, lo tienes que poner siempre en el main y despues olvidate de el ya que ha cada frame se actulizará solito, no tienes que volver a hacer un write en todo el juego, al menos que borres los textos con un delete_text(all_text);, algo así:

GLOBAL

int score1 = 0;
int score2 = 0;

...

BEGIN

set_mode(...)

.....

write_int(0,300,10,1,&score1);
write_int(0,360,10,1,&score2); // Nota: Estabas poniendo los puntos del jugador 2 encima de los del jugador 1 :)
                                          // (cambia las coordenadas x a tu gusto para cada uno)

FRAME;

.....

END

// Procesos.....

tu proceso que donde incrementas los puntos:

....

  if(X_Bola<-1)
   score2=score2+1;
   End

   if(X_Bola>641)
   score1=score1+1;
   End   

.......





Title: Re: Problema con el juego
Post by: FreeYourMind on February 22, 2010, 04:08:45 PM
Lo chulo era que definieras los puntos como has definido las barras, o sea, creando objectos para que quede igual al pong original, con numeros grandes, lo digo porque se puede crear una fuente gigante y utilizarla para eso, pero lo bueno de tu juego es que no has utilizado ningun recurso gráfico, y molaria mucho que completaras el juego sin usarlos, incluso si Bennu permitierá generar sonidos sin cargarlos (tipo beeps), seria fantastico (incluso no has utilizado colisiones lo que mola mucho). Aqui dejo la idea de los beeps para Splinter, ya se que será más complicadillo hacer el sistema de puntos definiendo los numeros por regiones, pero si entre todos te ayudamos lo podrias conseguir (a ver si alguien se anima).

Por cierto, con tu juego, me ha salido la idea de que el siguiente concurso que planean hacer (hablan de ello en otro post), fuera utilizando este tipo de tecnicas, o sea, se prohibiria el total uso de recursos externos, lo que seria bueno para ver en que tamaño podriamos hacer un juego, ya que Bennu es modular, y en un principio evitariamos los modulos no necesarios, con lo cual tu pong es un buen ejemplo para hacer el juego más pequeño en tamaño utilizando Bennu :)
Title: Re: Problema con el juego
Post by: DCelso on February 22, 2010, 04:41:47 PM
Los primeros juegos del proyecto apagame son así, sin recursos gráficos.
Además hay un pong y un arkanoid del que puedes sacar ideas para el tuyo.
Sigue el segundo enlace de mi firma, en el que pone apagame.
Title: Re: Problema con el juego
Post by: Drumpi on February 22, 2010, 05:57:42 PM
Hombre, como poder creo que se podrían crear cualquier tipo de sonidos, el problema es que no se tiene acceso al buffer de sonido igual que se tiene al de cualquier gráfico de memoria.

Es más, por lo que se, un instrumento se puede interpretar como una serie de valores, y usando un proceso inverso al que uso en mi proyecto se puede generar cualquier nota (así es cómo funcionan los MOD, IT, S3M...). Pero bueno, aun no estoy en disposición de decir nada ;D
Title: Re: Problema con el juego
Post by: FreeYourMind on February 22, 2010, 08:30:25 PM
Ya he echo el modulo beep para que puedas poner sonidos en tu Pong igualitos a los del juego original sin utilizar recursos :)
Te lo digo para hacer publicidad a mi fantastico mod, hhehehehe, y que lo utilizes en tu super juego :)
Descargatelo en su post.
Title: Re: Problema con el juego
Post by: Garreny on February 23, 2010, 02:07:28 PM
Ya se me muestran en pantalla, pero no se actualizan...

Estos son los cambios que he hecho, tal y como me has dicho:

   
   
Quoteint score1 = 0;
   int score2 = 0;

   write_int(0,270,20,1,&score1);
   write_int(0,330,20,1,&score2);
   Frame;


   if(X_Bola<-1)
   score2 = score2+1;
   Frame;
   End

   if(X_Bola>641)
   score1 = score1+1;
   Frame;
   End

Y lo de la música no lo he encontrado xd Si me puedes pasar el link...
Y muchas gracias por la ayuda.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 23, 2010, 02:13:02 PM
Lo de los Beeps, es esta la página:

http://forum.bennugd.org/index.php?topic=1197.0 (http://forum.bennugd.org/index.php?topic=1197.0)

sobre tu problema, pasame el código completo que te lo miro cuando llegue a casa, igual alguna pequeña chorradilla esta haciendo que no se actualize.
Title: Re: Problema con el juego
Post by: Garreny on February 23, 2010, 02:26:25 PM
Toqueteando los

Quote
   if(X_Bola<=-1)
   score2 = score2+1;
   Frame;
   End

   if(X_Bola>=641)
   score1 = score1+1;
   Frame;

, poniendo ese =, se me actualiza solo una vez, solo uno de los dos jugadores, y con dos puntos.


Bueno, te dejo el código entero:

QuoteProgram MEUPONG;
Global

   
   int RESOLUCION_X;
   int RESOLUCION_Y;

   // VARIABLES GLOBALS
   int Velocidad_Paletas;
   int score1 = 0;
   int score2 = 0;

   // CARACTERÍSTIQUES DE LA PALETA 1   
   int X_Paleta_1;
   int Y_Paleta_1;
   int Ancho_Paleta_1;
   int Alto_Paleta_1;
   int color_paleta_1;

   // CARACTERÍSTIQUES DE LA PALETA 2
   int X_Paleta_2;
   int Y_Paleta_2;
   int Ancho_Paleta_2;
   int Alto_Paleta_2;
   int color_paleta_2;

   // CARACTERÍSTIQUES DE LA BOLA
   int X_Bola;
   int Y_Bola;
   int Ancho_Bola;
   int Alto_Bola;
   int Color_Bola;
   int Velocidad_Bola_X;
   int Velocidad_Bola_Y;
   int max_velocidad;

BEGIN

   // INICIALITZAR ASPECTES GRÀFICS

   set_title("El meu primer Pong");
   Full_screen = false;
   Graph_mode = mode_16bits;
   set_mode (m640x480);
   set_fps(80, 60/10);
   
   RESOLUCION_X = 640;
   RESOLUCION_Y = 480;
 

   //ESCRIURE INFORMACIÓ SOBRE EL JOC EN PANTALLA
   write(0,10,10,0,"El meu primer Pong, v. 0.01");
   write(0,10,20,0,"Equip Garreny");
   write_int(0,300,10,1,&fps);
   write_int(0,270,20,1,&score1);
   write_int(0,330,20,1,&score2);
   Frame;


     

   // HEM ACABAT D' INICIALITZAR, LLANCEM EL BUCLE PRINCIPAL
   Controlador_Juego(); //Arranquem el controlador del joc
END

/////////////////////////////////////////////
// Controlador de joc

Process Controlador_Juego()
BEGIN

   Inicializar();

   Loop // Bucle principal

      If(key(_esc))  // Si s' apreta esc
         exit(0,0);  // Sortir del joc
      End

   Actualizar();
   
   Dibujar();

      Frame; // Refrescar pantalla

   End // Del loop

END

//////////////////////////////////////////////
//Inicialitza el joc en el seu estat inicial

Process Inicializar()
BEGIN

   Velocidad_Paletas = 5;

   // INICIALITZAR LA PALETA 1
   X_Paleta_1=30;
   Y_Paleta_1=240;
   Ancho_paleta_1=20;
   Alto_Paleta_1=100;

   // INICIALITZAR LA PALETA 2
   X_Paleta_2=610;
   Y_Paleta_2=240;
   Ancho_paleta_2=20;
   Alto_Paleta_2=100;

   // INICIALITZAR BOLA

   X_Bola=320;
   Y_Bola=240;
   Ancho_Bola=15;
   Alto_Bola=15;
   Velocidad_Bola_X = 3;
   Velocidad_Bola_Y = 3;
   max_velocidad = 5;
   max_velocidad = 5;

END

//////////////////////////////////////////////
// Dibuixa els elements del joc en pantalla

Process Dibujar()
Begin

   clear_screen();
   drawing_map(0,0);

   // Dibuixar Paleta 1

   drawing_color(rgb(25,55,255));
   draw_box(X_Paleta_1-Ancho_Paleta_1/2, Y_Paleta_1-Alto_Paleta_1/2, X_Paleta_1+Ancho_Paleta_1/2, Y_Paleta_1+Alto_Paleta_1/2);

   // Dibuixar Paleta 2

   drawing_color(rgb(33,63,212));
   draw_box(X_Paleta_2-Ancho_Paleta_2/2, Y_Paleta_2-Alto_Paleta_2/2, X_Paleta_2+Ancho_Paleta_2/2, Y_Paleta_2+Alto_Paleta_2/2);

   // DIBUIXAR BOLA
   
   drawing_color(rgb(45,200,5));
   draw_box(X_Bola-Ancho_Bola/2, Y_Bola-Alto_Bola/2, X_Bola+Ancho_Bola/2, Y_Bola+Alto_Bola/2);
   
END

/////////////////////////////////////////////
//Actualitza la llògica del joc

Process Actualizar()
Begin

   // ACTUALITZAR PALETA 1

   if(key(_k) AND Y_Paleta_1-Alto_Paleta_1/2 > 50) //Si s' apreta "amunt" i la paleta no ha arribat fins a dalt
      Y_Paleta_1 -=Velocidad_Paletas; // Fem que pugi
   End

   if(key(_m) AND Y_Paleta_1+Alto_Paleta_1/2 < 430) //Si s' apreta "avall" i la paleta no ha aribat abaix
      Y_Paleta_1 +=Velocidad_Paletas; //Fem que baixi
   End


   // ACTUALITZAR PALETA 2

   if(key(_up) AND Y_Paleta_2-Alto_Paleta_2/2 > 50) //Si s' apreta "amunt" i la paleta no ha arribat fins a dalt
      Y_Paleta_2 -=Velocidad_Paletas; // Fem que pugi
   End

   if(key(_down) AND Y_Paleta_2+Alto_Paleta_2/2 < 430) //Si s' apreta "avall" i la paleta no ha aribat abaix
      Y_Paleta_2 +=Velocidad_Paletas; //Fem que baixi
   End


   if(X_Bola<=-1)
   score2 = score2+1;
   Frame;
   End

   if(X_Bola>=641)
   score1 = score1+1;
   Frame;
   End

   Control_Bola();
   
End

//////////////////////////////////////////////
// ACTUALITZA LA LLÒGICA DE LA BOLA

Process Control_Bola()
Begin

   // COL·LISIONS AMB LA PALETA 1

   if(Velocidad_Bola_X < 0 && X_Bola>X_Paleta_1 && (X_Bola-(Ancho_Bola/2))<=(X_Paleta_1+(Ancho_Paleta_1/2)))

      if(abs(Y_Paleta_1-Y_Bola)<(Alto_Paleta_1/2)+(Alto_Bola/2))
         Velocidad_Bola_X = max_velocidad;
      End

   End

   // COL·LISIONS AMB LA PALETA 2

   if(Velocidad_Bola_X > 0 && X_Bola<X_Paleta_2 && (X_Bola+(Ancho_Bola/2))>=(X_Paleta_2-(Ancho_Paleta_2/2)))

      if(abs(Y_Paleta_2-Y_Bola)<(Alto_Paleta_2/2)+(Alto_Bola/2))
         Velocidad_Bola_X = -max_velocidad;
      End

   End

    //COL·LISIONS AMB LES PARETS SUPERIOR I INFERIOR

   if(Velocidad_Bola_Y<0 && (Y_Bola-(Ancho_Bola/2))<=50)
      Velocidad_Bola_Y = max_velocidad;
   End
   
   if(Velocidad_Bola_Y>0 && (Y_Bola-(Ancho_Bola/2))>=430)
      Velocidad_Bola_Y =-max_velocidad;
   End


   X_Bola+=Velocidad_Bola_X;
   Y_Bola+=Velocidad_Bola_Y;

   // Condicions de la Bola

   if(X_Bola>641 or X_Bola<-1)
   X_Bola=320;
   End

   

   
   

End

Y los beeps no sé como ponerlos, no tengo ni la más menor idea de lo que es esto que mencionas: 'bgdc.import'
xD
Title: Re: Problema con el juego
Post by: DCelso on February 23, 2010, 02:35:42 PM
a ver, el módulo beep que te dicen es para BennuGD, que es un programa parecido a fenix pero modular.
Veo que tu código es para fenix, te recomendaría que cambiases a bennuGD si quieres usar todas sus mejoras y nuevos módulos y empezaras a leerte los tutoriales de windgate y de osk.
http://iespuigcastellar.xeill.net/departaments/informatica/fitxers/programacio/manualbennu.pdf
http://trinit.es/tutoriales/
En estos puedes ver muchos ejemplos de juegos y técnicas de programación de juegos.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 23, 2010, 11:50:38 PM
Para que te funcione, cambia los if's por estos:


if(X_Bola<=0)
  score2 = score2+1;
End

if(X_Bola>=640)
   score1 = score1+1;
End


Tienes cosas muy raras en tus juego, empezando por divisiones que sobran y definiciones con valores raros, a ver si alguien con tiempo te lo repasa todo y te lo corrige.
Title: Re: Problema con el juego
Post by: Garreny on February 24, 2010, 02:34:05 PM
Gracias  ;D
Lo de los valores raros, pues entre que acabo de empezar, y usé un tutorial rarillo, pues... xD

Y sobre pasarme a Bennu, ya pensaba hacerlo al acabar el pong, viendo que todos lo usáis y es mejor...
Por cierto, hay algun método establecido por hacer pausas en los juegos? Es que lo he estado probando haciendo que la velocidad de la bola puera 0 al pulsar el botón P, pero me da error y me hace pensar que al restablecerlo quizás salga disparado hacia otro lado.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 24, 2010, 02:49:06 PM
Si lo hay, basicamente es hacer que el proceso padre se congele, leete el ManualBennu que te han puesto, esas cosillas se explican en estos tutoriales, mirate la parte donde se hable de procesos, que te pone todas las opciones permitidas, desde matar procesos a congelarlos, despertarlos, etc. y en estas cosas lo mejor es que lo estudies antes un poco, ya que estas nociones no son dudas pero si el minimo de cosas que debes aprender de Bennu antes de empezar a programar  ;D
Title: Re: Problema con el juego
Post by: Drumpi on February 25, 2010, 02:10:41 AM
De todas formas ¿qué tutorial es el que estás usando? porque no conozco ninguno para Fenix/Bennu que haga un pong de esa manera, desaprovechando la potencia de los procesos.
Title: Re: Problema con el juego
Post by: DCelso on February 25, 2010, 07:18:17 AM
pues haberlos, haylos, los primero de osk son así, sin ir más lejos, el tetris que me pasó que dió lugar al proyecto apagame.
Title: Re: Problema con el juego
Post by: Garreny on February 25, 2010, 12:43:22 PM
El tutorial que estaba usando era uno que usaba Fenix sólo en el primer capítulo, después se pasaba a C, y por eso he tenido esos problemas, porque me ha dejado colgado. Pero he empezado a pasarme a Bennu con el tutorial que me habeis pasado, y ya pasaré mi pong a Bennu, también.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 25, 2010, 01:52:45 PM
No tienes que pasarlo porque ya esta en Bennu :) Yo lo he probado con Bennu, hace años que no toco nada en Fenix  ;D
Title: Re: Problema con el juego
Post by: Garreny on February 25, 2010, 03:18:32 PM
Es que me dice que no identifica ''FPS''...
Title: Re: Problema con el juego
Post by: DCelso on February 25, 2010, 04:09:04 PM
es por lo que te comentaban de un fichero llamado "bgdc.import".
Bennu, a diferencia de Fenix, es modular.
En resumidas cuentas, en bennu necesitas indicar los módulos que vas a usar en tu programa para que así conozca donde están funciones, variables y constantes que vas a ir usando.
Tienes varias opciones para hacer esto. La primera es crear un archivo bgdc.import en el directorio de tu mismo .prg y en este archivo ir metiendo los módulos que necesita tu programa, mucha gente mete en este archivo todos los módulos que existen en bennu :D.
el archivo tendría un formato como este
Quote from: bgdc.import
mod_key
mod_proc
mod_say
mod_mouse
mod_video
mod_regex
mod_map
otra opción es dentro de tu prg, al principio del todo escribes una palabra reservada para indicar el módulo a usar.
Seria poner algo así al principo de tu prg

import "mod_key";
import "mod_map";
import "mod_video";
import "mod_regex";
import "mod_mouse";

Vamos pero que todo esto viene explicado en ambos tutoriales, míralos por encima antes de meterte en brea, sino las vas a pasar canutas y te vas a ir desmotivando.
Title: Re: Problema con el juego
Post by: FreeYourMind on February 25, 2010, 04:23:59 PM
tienes que importar los modulos que necesitas (mod_video, etc)
.... mirate como hacer un primer programa de bennu en el tutorial.
Title: Re: Problema con el juego
Post by: Windgate on March 02, 2010, 02:08:01 PM
El tema de las .dll no lo trato en mi tutorial (Al menos aún no...) porque usa plantillas asociadas a cada tema y terminan metiendo todas las .dll "habituales" sin que tengas que hacer nada. Para todo lo demás, manual de Osk, es MUY recomendable saber importar bien las .dll necesarias, son el alpha y el omega de Bennu.
Title: Re: Problema con el juego
Post by: Garreny on March 02, 2010, 08:17:03 PM
Ahora mismo no puedo estar mucho por el tema, pero el lunes acabo exámenes y me puedo poner de nuevo, a machacar con los tutoriales ;D