• Lunes 23 de Diciembre de 2024, 03:09

Autor Tema:  Juego De Invasion De Letras  (Leído 2657 veces)

M@ye

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Juego De Invasion De Letras
« en: Miércoles 11 de Junio de 2008, 21:59 »
0
:D Hola!  :D

Necesito algo de ayuda pleaseeeeeeeeeeeee!!
Debo hacer un juego en el cual caigan letras en la pantalla y el usuario elimine por teclado. Hice unos ciclos dentro de condicionales y logre q baje una sola letra, la cual se puede eliminar por teclado PERO deben caer 16 a la vez y no se como, logro que bajen las 16 pero no puedo eliminarlas por teclado como lo hacia con una sola..

Por fa si alguien puede decirme algo, el profe dice que se realiza cargando un vector con las letras y usando procedimientos pero eso no me funciona o no se aplicarlo, soy muy nueva en esto!! ¿como guardar posiciones distintas en pantalla para letras de un mismo indice?  :blink:  :blink:  :blink:  :blink:

Gracias!!!

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #1 en: Jueves 12 de Junio de 2008, 02:02 »
0
Citar
el profe dice que se realiza cargando un vector con las letras y usando procedimientos
Pues esta bien clarito.

a modo de ejemplo....
Código: Text
  1.  
  2. type
  3.    TLetra: record
  4.        X: Byte;
  5.        Y: Byte;
  6.        C: Char;
  7.     end;
  8.  
  9.     TLetras: array[1..16] of TLetra;
  10. var
  11.     Letras: TLetras;
  12. begin
  13.     Letras[1].X := 1;
  14.     Letras[1].Y := 2;
  15.     Letras[1].C := 'A';
  16.     MostrarLetra(Letras[1]);
  17. end;
  18.  
  19.  

M@ye

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #2 en: Jueves 12 de Junio de 2008, 23:03 »
0
Oye muchas Gracias...

Aun no he visto registros y no puedo usarlos (por ahora), con ese codigo q me colocaste se ve mas sencillo el problema PERO debo usar arreglos normalitos que es lo unico que se.

Soy una gran nueva pero tengo mucho interes en aprender.... Cuando tenga listo este programa lo publicare para que el mundo lo conozca jejeje.. He avanzado un poco mas!!  :kicking:  :kicking:  :kicking:

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #3 en: Viernes 13 de Junio de 2008, 04:25 »
0
Se puede hacer lo mismo pero usando 3 vectores en vez de uno.
Código: Text
  1.  
  2. var
  3.     PosX: array[1..16] of Byte;
  4.     PosY: array[1..16] of Byte;
  5.     Chr:  array[1..16] of Char;
  6. begin
  7.      GotoXY(PosX[1],PosY[1]);
  8.      Write(Chr[1]);
  9.  
  10.  

saludos.

M@ye

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #4 en: Viernes 20 de Junio de 2008, 16:31 »
0
:huh: Hoooola amigos!!!!
este problemilla no me lo resuelven los librillos...
Por que al pasar un proceso de un programa principal a un procedimiento para usarlo luego, éste me de resultados distintos siendo las mismas lineas de codigo cortadas y pegasdas????  :huh:
Graciiiiiiiiiiiiiiiiiias!!!!!!!!!!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #5 en: Viernes 20 de Junio de 2008, 19:48 »
0
Cita de: "M@ye"
:huh: Hoooola amigos!!!!
este problemilla no me lo resuelven los librillos...
Por que al pasar un proceso de un programa principal a un procedimiento para usarlo luego, éste me de resultados distintos siendo las mismas lineas de codigo cortadas y pegasdas????  :huh:
Graciiiiiiiiiiiiiiiiiias!!!!!!!!!!!
Pues si no pones el codigo fuente es dificil saber porqué, pero, sospecho que se debe a las variables, al pasar tu codigo a un procedimiento, si usas variables locales y parametros por valor, recuerda que un parametro por valor conserva su valor original que tenia antes de entrar al procedimiento, y al salir del procedimiento, cualquier operacion que hayas hecho con las variables se pierde, entonces deberias usar parametros por referencia, aunque como dije, es un tiro a ciegas sin ver el codigo fuente.

Saludos :hola:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

M@ye

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Juego De Invasion De Letras
« Respuesta #6 en: Jueves 26 de Junio de 2008, 23:36 »
0
:hola: Vamos a ver, este es el procedimiento:

procedure disparo_uno ( var pos_x,pos_y:array of byte;var cont:byte;c:char);
begin
case c of
         'g' :  sidisparan (pos_x [9],pos_y [9],cont);
         'a' :  sidisparan (pos_x [10],pos_y [10],cont);    
         'k' :  sidisparan (pos_x [15],pos_y [15],cont);
         'L' :  sidisparan (pos_x [18],pos_y [18],cont);
 end;
 end;

entonces sucede que cuando lo llamo, si presiono la 'k' hace lo que asigne para la 'a'..... las lineas anteriores a la llamada son:

for i := 9 to max 10
      bajaletra (pos_x ,pos_y ,vida,vtr );

yo inicialice i asi que por eso no es..... Lo que no entiendo es por q funciona bien si escribo las lineas en lugar de llamar al procedimiento.

 :D  :D  :D  Que penita con ustedes, soy novata... Entiendame, todos pasaron por eso (creo)!!!!   :D   :D