Aktuelle Zeit: 05.01.2025, 07:53

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Tastenkombination
BeitragVerfasst: 08.12.2009, 14:34 
Offline

Registriert: 02.12.2009, 11:39
Beiträge: 16
Hi habe eine Frage ist es möglich in Irrlicht eine Tastenkombination abzufragen.
Bastle gerade an einem Spiel und will wenn die Taste "W" und "D" gleichzeitig gedrückt ist, dass mein Charakter
in eine bestimmte Richtung läuft.
Habe eine Simulation geschrieben wo der Tastendruck simuliert wird und die Bewegung klappt hervorragend.
Jetzt weiss ich allerdings nicht wie ich abfrage ob die "W"-"D" Kombination gedrückt wurde.

Hat einer ein Beispiel oder ein Codeschnipsel für mich?
Es geht halt wirklich nur um die Abfrage der Tastenkombination.

Danke


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 08.12.2009, 17:06 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Du merkst dir einfach selber, welche Taste gerade gedrückt ist.

Code:
bool keys[...] = {false};

bool OnEvent( const SEvent& event )
{
   if( event == KeyEvent )
        keys[event.key] = event.PressedDown;
}

...

if( keys[w] && keys[d] )
{
   bla
}

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 09.12.2009, 10:53 
Offline

Registriert: 02.12.2009, 11:39
Beiträge: 16
Ich habe das anders gelöst, anstatt mir die Tasten zu merken einfach den Zustand der Tasten mit getAsyncKeyState abfragen. Geht unter Windows, man bindet ja windows.h ein.

in die Hauptschleife:
Code:

   if (GetAsyncKeyState(87)<0 && GetAsyncKeyState(68)<0)
         {
            cout<<"Tastenkombination W und D gedrückt"<<endl;
         }


habe dann Irrlicht laufen lassen es ausprobiert und es geht.
Vielleicht nicht die beste Lösung aber es funktioniert, zumindestens bei mir.

Die Zahlen 87 und 68 sind aus einer Tabelle.
gross kleinschreibung wird nicht beachtet dann muss man mitprüfen ob die SHIFT-Taste mitgedrückt wurde.
(einfach anstatt der Zahlen VK_SHIFT) eingeben.
zur Hilfe kann man die MSDN nutzen und nach virtual KeyCodes suchen.

a = 65 bis z = 90 (ohne Umlaute)



mfg


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 09.12.2009, 11:34 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Kirjuxa hat geschrieben:
Geht unter Windows, man bindet ja windows.h ein.

Gut ich benutz die WinAPI nie in verbindung mit Irrlicht...

Dir ist aber jetzt auch klar, dass das Program nichtmehr unter anderen OS laufen wird, oder?

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 09.12.2009, 12:36 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
Zitat:
Dir ist aber jetzt auch klar, dass das Program nichtmehr unter anderen OS laufen wird, oder?


Wollt ich auch grade sagen! Warum nimmst du nicht die Variante von Sylence, die er oben beschrieben hat? Man muss sich ja nich immer an Windows festbeißen ....

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 09.12.2009, 13:43 
Offline

Registriert: 02.12.2009, 11:39
Beiträge: 16
hmm..

habe das noch nicht ausprobiert,
bin gerade noch auf Arbeit und habe da nach Tastenkombinationsabfragen im Internet gesucht.
War halt die erste Lösung, die ich gefunden hatte.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 09.12.2009, 15:32 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
And der Lösung an sich ist ja auch nichts auszusetzen. Außer eben das sie nur auf Windows funktioniert. Und da die platformunabhängige Variante genauso kurz ist, sollte man die doch vorziehen.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tastenkombination
BeitragVerfasst: 10.12.2009, 07:26 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Ich vergess ca jedes zweite oder dritte mal, wenn ich einen EventReceiver einbauen will, den "IrrlichtDevice::setEventReceiver" Aufruf. Ärgert mich jedes mal wieder, aber von Mal zu Mal find ich den Fehler schneller ;). Es ist auf alle Fälle die bessere Methode, die Irrlicht Variante zu benutzen. Funktioniert prima und ist plattformübergreifend.

_________________
Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de