| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Gustavo083 Ens

Registrado: 14 Ene 2004Mensajes: 25
|
Publicado: Vie 23 Jul, 2004 10:30 pm Asunto: Capturar dos teclas |
|
|
buenasss
Gente, estoy haciendo una aplicaciion y se me re complico, Mazs precisamente estoy haciendo un juego de karate y necesito saber como se hace para capturar dos teclas a la misma vez. Ej : flecha al costado y flecha arriba. Es decir no se como identificar cuando huboi uyna comnbinacion de teclas. Si alguien sabe se lo agradecería un montón. Des de ya miuchas gracias
Gustavo |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 23 Jul, 2004 10:51 pm Asunto: |
|
|
Puede servirte la función del API: GetKeyboardState. Como ejemplo prueba lo siguiente en el evento OnKeyDown del Form:
| Código: | BYTE teclas[256];
GetKeyboardState(teclas);
if ((teclas[VK_LEFT] & 0x80) && (teclas[VK_UP] & 0x80))
ShowMessage("Pulsaste cursores IZQUIERDA y ARRIBA"); |
|
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Sab 24 Jul, 2004 11:52 am Asunto: |
|
|
Tb puedes controlar que no tengas que pulsar las dos teclas a la vez, que pueda haber un retardo...como en los juegos reales de lucha, los combos creo que son cada 30 milesimas pues puedes hacer esto mira
La propiedad Timer1->Interval a 30 o 300 como veas tu
y despues
| Código: |
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
BYTE teclas[256];
GetKeyboardState(teclas);
if (teclas[VK_UP] & 0x80 && Timer1->Tag==1)
{
Timer1->Tag=0;
ShowMessage("Pulsaste cursores IZQUIERDA y ARRIBA");
}
if ((teclas[VK_LEFT] & 0x80)
Timer1->Tag=1;
}
|
Creo que con esto valdria, la propiedad interval tiene que ser la mitad del tiempo que quieres entre pulsacuon y pulsacion _________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
Gustavo083 Ens

Registrado: 14 Ene 2004Mensajes: 25
|
Publicado: Dom 25 Jul, 2004 4:56 am Asunto: Gracias |
|
|
Nuevamente debo decirles gracias por la ayuda. Me dieron una mano terrible.
Gustavo |
|
| Volver arriba |
|
 |
|