Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

05.01.2011, 23:31

[Ogre3D] Flüssige Bewegungen

Hallo Community,

sorry wenn das Topic etwas unpassend ist aber mir ist kein passender Begriff eingefallen.
Die Funktion ::keyPressed wird ja immer aufgerufen wenn eine Taste gedrückt wurde dann drücke ich z.B UP und mein Charakter bewegt sich 1 Schritt ich muss aber nun erneut drücken damit er wieder 1 Schritt sich bewegt. Kann man da nicht irgendwie was ändern das ich auch gedrückt lassen kann?
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

05.01.2011, 23:37

ich würd spontan bei keyPressed eine boolvariable oder ein flag true umschalten und bei keyReleased(oder so) auf false. ob Ogre3D das schon so unterstützt(wie z.b. die sfml) weiß ich leider nicht.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

3

06.01.2011, 00:56

Du kannst den Vorschlag von NachoMan umsetzen, dieser funktioniert, eine andere Möglichkeit ist mit einem FrameListener in jedem Frame zu ueberpruefen ob eine Taste gedrueckt ist und damit zeitabhängig das Model bewegen.

4

06.01.2011, 14:02

Wird das in deinem Buch erklärt?
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

5

06.01.2011, 14:13

Ich gehe mal stark davon aus, dass es erklärt wird, auch wenn ich sein Buch nicht habe. Unter anderen wird es aber auch hier erklärt. An dieser Stelle findet man es ohne die Example Application oder auch hier.
Allgemein empfehle ich dir, dir die Ogre-Wiki mal näher an zu sehen. Da findet man sehr viel Hilfe. Besonders hilfreich fand ich den oben verlinkten letzten Link(Managing Game States with Ogre).
Ach und übrigens: An Englisch führt bei Ogre meiner Meinung nach kein Weg vorbei.

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

6

06.01.2011, 14:15

Ja in Kapitel 4 wird darauf eingegangen wie man Benutzereingaben verarbeitet und diese nutzt um Modelle zeitabhängig zu bewegen.

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

7

06.01.2011, 14:34

Es hängt auch davon ab wie du OIS verwendest (gehe mal davon aus, dass du das tust, da im Kontext von Ogre3D meist OIS verwendet wird). Es gibt da bei der Initialisierung zwei Modis, gepufferd und ungepufferd. Je nachdem werden auch kontiniuierlich kepress-Ereignisse erzeugt, wenn man die Taste dauernd gedrückt hält. Da das bei mir schon wieder ne Weile her ist, dass ich meinen Input-Teil in meiner GameEngine implementiert hab, weiß ich momentan nicht mehr genau welcher Modus welches Verhalten an den Tag legt. Aber vielleicht probierts du die zwei Modis einfach mal aus. Es sei jedoch darauf hingewiesen, das die Ereignisverarbeitung der beiden Modis in OIS unterschiedlich erfolgt. Am besten du wirfst mal nen Blick in das Ogre3D-Wiki
http://www.ogre3d.org/tikiwiki/Using+OIS&structure=Libraries

Thoran

P.S.: Wenn du nicht weiterkommst, kann ich auch mal meinen InputHandler ausgraben und dir ein paar Source-Snippets weiterreichen.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Werbeanzeige