Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Capturar las teclas para un juego

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Capturar las teclas para un juego Responder citando

Hola
Estoy tratando de hacer un juego en el que un cañon que se encuentra en la parte inferior dispare balas hacia una nave, el problema es como capturar las teclas del cursor para mover el cañon.
Que funcion de C++ Builder puede utilizar...he probado la funcion GetChar pero no se porque falla.
Volver arriba
Mensaje    Asunto: Capturar las teclas para un juego Responder citando

Seguro que se puede hacer mejor, pero
yo pondria un Timer, y en el evento OnTimer
miraria mediante la funcion GetKeyState de la API, si una tecla esta pulsada. Si es asi , una variable booleana se activaria.

Podría ser:
//--------------------------------------
bool pulsado;

pulsado = GetKeyState(VK_Shift) & 0x8000;
//----------------------------------------

En este caso miro si la tecla Shift esta pulsada.
Mira en la ayuda de la API, existen mas funciones para leer del teclado, asi como
todos los codigos de las letras.
Suerte.

Volver arriba
Mensaje    Asunto: Capturar las teclas para un juego Responder citando

Primero te posicionas en el menu
View y das clic en ClassExplorer

Segundo, en tu clase principal de formulario (donde esta el cañon)en mi caso TForm1 das clic con el boton derecho y seleccionas New Method...

Tercero, escribes el nombre que quieras en el campo Method Name, escribes en Arguments TMessage a,la "a" es cualquier nombre,el tipo de metodo sera funcion,el resultado de la funcion sera void, la visibilidad será publica, y marcas la casilla Message Handler, y escoges de la lista el mensage WM_KEYUP,y das clic en ok.

Cuarto, El clic en Ok te llevara al codigo ahi escribes el manipulador de tu juego en mi caso solo es:

void TForm1::Hola(TMessage a)
{
//TODO: Add your source code here
if (a.WParam == 3Cool
ShowMessage("Presione ARRIBA");
if (a.WParam == 39)
ShowMessage("Presione ATRAS");
if (a.WParam == 40)
ShowMessage("Presione ABAJO");
if (a.WParam == 41)
ShowMessage("Presione ADELANTE");
}

Espero que esto te sirva, al terminar tu juego a ver si me lo mandas para que podamos jugar, sale...

Volver arriba
Mensaje    Asunto: Capturar las teclas para un juego Responder citando

Yo también me encontré hace algunas fechas con este mismo problema y otro miembro de este foro, al igual que Miquel Sanchez, me recomendó la función GetKeyState. En efecto, con esta función conseguí conocer si alguien pulsaba alguna de las teclas de flecha arriba, abajo etc. pero lo que no me funcionó demasiado bien fue la captura previa del evento onkeypress, onkeydown.
En lugar de esto lo que hago es ejecutar previamente el método :
Application->ProcessMessages();
No me preguntes qué hace exactamente este método, sólo sé que después de ejecutarlo puedes preguntar por cualquier tecla con la función GetKeyState, y funciona.
De todos modos para experimentar me fabriqué un pequeño programa que, en caso de que no consigas tu objetivo, te lo puedo enviar si dejas aquí tu dirección de correo.

Volver arriba
Mensaje    Asunto: Capturar las teclas para un juego Responder citando

magel@softhome.net
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.