Entwickler-Ecke
Multimedia / Grafik - Flüssige Bewegung einer Figur
pwsolaris - Fr 10.06.11 07:27
Titel: Flüssige Bewegung einer Figur
Guten Morgen,
ich bin in meiner Freizeit momentan damit beschäftigt, ein kleines Spiel (2D) zu schreiben. Stellt es euch grafisch als eine Art Zelda für den GameBoy vor :)
In meiner Anwendung habe ich einen Hintergrund und auf diesem Hintergrund soll sich meine Spielfigur bewegen.
Die Spielfigur ist noch ein normales nicht animiertes TImage.
Bisher löse ich die Bewegung im KeyDown Ereignis meiner Form damit sich die Figur nach links, rechts, oben und unten bewegen kann.
Irgendwie erscheinen mir die Bewegungen so jedoch viel zu stockend und darum wollte ich fragen, ob ihr mir ein paar Tipps geben könnt, die Bewegungen besser umzusetzen.
Wenn ich jetzt die Figur nach rechts bewegen möchte, macht sie erst einen Schritt, dann eine kurze Pause bis sie dann wieder anfängt nach rechts zu laufen...
Am liebsten wäre mir auch eine Steuerung über GamePad (XBox oder PS3). Dazu müsste sich die Figur dann auch diagonal bewegen können (Hierzu könnte ich ja einfach zwei gedrückte Tasten abfragen, oder?)
Die Umsetzung für ein Gamepad werde ich aber erst später durchführen :D
Auch ist mir aufgefallen, dass sich die Figur nicht wirklich umlenken lässt. Wenn ich z.B. meine Figur nach links bewege und dann die Pfeiltaste nach oben drücke, rennt die Figur weiter nach links... weder nach links oben und auch nicht nur nach oben. Die Figur bleibt auch stehen, wenn ich dann die Pfeiltaste nach Links loslasse und nur die Pfeiltaste nach oben gedrückt ist.
Hoffentlich versteht ihr in etwa mein Problem und könnt mir etwas weiterhelfen...
Xion - Fr 10.06.11 08:52
pwsolaris hat folgendes geschrieben : |
Die Spielfigur ist noch ein normales nicht animiertes TImage.
|
Ich kann dir empfehlen wenn du komplexere Spiele programmieren willst, dich mal mit OpenGL z.B. auseinanderzusetzen.
http://wiki.delphigl.com/index.php/Tutorial
Gerade für 2D ist das sehr einfach und effektiv.
pwsolaris hat folgendes geschrieben : |
Wenn ich jetzt die Figur nach rechts bewegen möchte, macht sie erst einen Schritt, dann eine kurze Pause bis sie dann wieder anfängt nach rechts zu laufen... |
Such mal nach GetAsyncKeyState.
pwsolaris hat folgendes geschrieben : |
Auch ist mir aufgefallen, dass sich die Figur nicht wirklich umlenken lässt. Wenn ich z.B. meine Figur nach links bewege und dann die Pfeiltaste nach oben drücke, rennt die Figur weiter nach links... weder nach links oben und auch nicht nur nach oben. Die Figur bleibt auch stehen, wenn ich dann die Pfeiltaste nach Links loslasse und nur die Pfeiltaste nach oben gedrückt ist. |
Klingt nach einem Bug in deinem Programm. Klar ist aber, dass du jeweils nur EINE Taste von der Tastatur bekommst. Diagonal wird deine Figur als niemals laufen (außer mit GetAsyncKeyState. Aber auch dort sind es nur ca 3 Tasten gleichzeitig, zumindest bei mir ;) Das liegt aber wohl an der Hardware).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!