Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 01.02.2007, 19:40 Titel: Problem mit Tastaturabfrage |
|
|
bin grad an der steuerung von nem 3d-game und das model bewegt sich auch und is auch schön animiert aber das problem ist, wenn ich die w-taste gedrückt halte bewegt sich das model erst um 1 einheit nach vorne, bleibt kurz stehen und bewegt sich dann erst konstant bis man die taste wieder loslässt. diese verzögerung kennt man ja auch vom schreiben wenn man ne taste gedrückt hält ratterts ja auch nich gleich alle buchstaben rein sondern wartet kurz und dann erst.
aber ich brauch des halt unbedingt ohne die verzögerung.
hier n bisschen vereinfachter code(die klasse kommt von irrlicht) um die bewegung abzufragen wenn das bei der hilfe hilft
Code: | class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(SEvent event)
{
if (event.EventType==irr::EET_KEY_INPUT_EVENT&&event.KeyInput.PressedDown)
{
switch(event.KeyInput.Key)
{
case KEY_KEY_W:
{
beweg disch
}
return true;
}
}
return false;
}
}; |
kennt sich hier zufällig jemand damit aus?? |
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 01.02.2007, 20:04 Titel: |
|
|
Die Methode hast du warscheinlich von dem Project "MoveSprite" abgekupfert. Das Problem daran is, dass sie auf Events reagiert, das dein System deinem Programm übergibt. Wenn du hier die W-Taste drückst bekommt dein Programm die Meldung so wie sie du beschrieben hast.
Daher solltest du entweder mit
CPP: | GetAsyncKeyState(VK_LEFT) |
kontrollieren ob die Taste gedrückt ist (Beispiel : "MoveSpriteEx") oder, wenn du ein wenig Erfahrung hast, es mit DirectInput versuchen. |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 01.02.2007, 20:20 Titel: |
|
|
Genau. Oder du benutzt DirectInput für die Tastaturabfragen. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 02.02.2007, 13:54 Titel: |
|
|
@Otscho werde das mal ausprobieren mit getasynckeystate... btw welches projekt movesprite meinst du(sprites sind außerdem für 2d-zeugs ich will da ja nich nur flache bildchen rumrennen lassn)? und das andere sagt mir auch nix. ich hab das von denn irrlicht-examples abgeschaut weil da immer diese methode verwendet wird und hab jetz halt schon alles gecodet und gehofft mir fehlen nur die 1-2 befehle know-how um das mit dieser methode flüssig zum laufen zu bringen aba wenn das garnich mit der geht muss ichs wohl ändern
@jonathan ne steht eigtl auser frage, wär unakzeptabel wenn man immer zum ausführen erst n emulator starten müsste....
thx für die schnellen antwortn |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 02.02.2007, 13:55 Titel: |
|
|
Otscho hat Folgendes geschrieben: | oder, wenn du ein wenig Erfahrung hast, es mit DirectInput versuchen. |
Jonathan_Klein hat Folgendes geschrieben: | Genau. Oder du benutzt DirectInput für die Tastaturabfragen. |
Stimmt...DirectInput geht auch
Gibts denn in einer so populären Engine wie der Irrlicht keine Unterstützung von DirectInput-Eingaben? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 02.02.2007, 15:30 Titel: |
|
|
nigs hat Folgendes geschrieben: | btw welches projekt movesprite meinst du(sprites sind außerdem für 2d-zeugs ich will da ja nich nur flache bildchen rumrennen lassn)? |
Das ist ein Beispiel aus dem Buch von Kapitel 21. Indem das Thema behandelt wird. Ich ging davon aus das dir das Buch ein Begriff ist. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 03.02.2007, 02:16 Titel: |
|
|
@otscho
wenn das das erste ist ists mir schon n begriff aber seeeehr lange her als ich das letzte ma in der hand hatte.
@thelordofprogramming: nicht dass ich wüsste, afaik is das nich zuletzt deswegen weil irrlicht nich nur für windows is. ich persönlich find das toll, da gerade eine populäre engine auch überall laufen sollte... |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 03.02.2007, 09:47 Titel: |
|
|
Ich hab mir mal Irrlicht angesehen. Es gibt Kameras, welche sich gleich um die Tastaturabfrage kümmern. Soweit ichmich erinner gab es eine die sich wie bei einem 3D Shooter verhällt und eine die in Richtung Diablo geht. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 03.02.2007, 13:14 Titel: |
|
|
Chriss hat Folgendes geschrieben: | Ich hab mir mal Irrlicht angesehen. Es gibt Kameras, welche sich gleich um die Tastaturabfrage kümmern. Soweit ichmich erinner gab es eine die sich wie bei einem 3D Shooter verhällt und eine die in Richtung Diablo geht. |
Ja, das weiss ich aber ich will ja keine kamera bewegen mir gehts grad dadrum den player zu bewegen nicht die kamera. ich will später die kamera abhängig vom player und nich umgekehrt bewegn^^
Thread kann von mir aus geschlossen werden, meine frage is ja schon beantwortet... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 04.02.2007, 12:50 Titel: |
|
|
nigs hat Folgendes geschrieben: |
@jonathan ne steht eigtl auser frage, wär unakzeptabel wenn man immer zum ausführen erst n emulator starten müsste....
|
Äh, wenn du WindwosMessages benutzt, brauchste doch eh zumindest Wine, oder?
Ich bin jetzt nich so der super Linux freak, aber es gibt doch OpenGL für Grafik, OpenAL für Sound, müsste es dann nicht auch was gescheites, systemübergreifendes für Eingabe geben? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 11.02.2007, 17:21 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | nigs hat Folgendes geschrieben: |
@jonathan ne steht eigtl auser frage, wär unakzeptabel wenn man immer zum ausführen erst n emulator starten müsste....
|
Äh, wenn du WindwosMessages benutzt, brauchste doch eh zumindest Wine, oder?
Ich bin jetzt nich so der super Linux freak, aber es gibt doch OpenGL für Grafik, OpenAL für Sound, müsste es dann nicht auch was gescheites, systemübergreifendes für Eingabe geben? |
kA wie des jetz mit windowsmessages is, aber die Klasse in der die Funktion(OnEvent) zum Abfragen der Eingaben drin ist, ist von irrlicht abgeleitet(IEventReceiver) und mit:
Code: | device->setEventReceiver(&receiver); |
teilt man der Engine mit dass sie die von mir selber geschriebene Funktion aus der von irrlicht abgeleiteten Klasse aufrufen soll.
Die Engine hat ja extra klassen für Events, oben is ja der code wie ich meinen "eigenen" EventReceiver definier.
Also daraus und der 100% Lauffähigkeit von Irrlicht unter Linux würd ich schliessen, dass ich den gleichen Code ohne Probleme unter Linux komplieren kann ohne Fehler und mit dem gleichen Ergebnis.
(oder etwa nich?! hab im mom leider nur XP drauf und kanns nich testn...) |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 11.02.2007, 17:31 Titel: |
|
|
achso, über Irrlicht. Ja klar, das wird dann wohl unter Linux einfach Linux Nachrichten nehmen, die es da wohl auch geben müsste. Damit wäre das ja wieder geregelt.
Aber bietet Irrlicht keine gescheite Tastaturabfrage an? In den Demos konnte man doch auch durch 3D Levels fliegen, ohne das es gehackelt hat. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 13.02.2007, 15:56 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | achso, über Irrlicht. Ja klar, das wird dann wohl unter Linux einfach Linux Nachrichten nehmen, die es da wohl auch geben müsste. Damit wäre das ja wieder geregelt.
Aber bietet Irrlicht keine gescheite Tastaturabfrage an? In den Demos konnte man doch auch durch 3D Levels fliegen, ohne das es gehackelt hat. |
Jop, aber wenn man sich den code dazu anschaut, sieht man dass da nirgends explizit die tasten abgefragt werden. Die Engine kümmert sich um die Kamera-steuerung automatisch wenn man will... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 13.02.2007, 15:59 Titel: |
|
|
Hm, mist
Dann muss man halt mal in den Source der Engine einsteigen und da mal gucken, wies gemacht wird. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|