Autor Beitrag
pwsolaris
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 71
Erhaltene Danke: 1

MS DOS, Win 95, Win 98, Win ME, Win XP, Win Vista, Win 7 Ultimate
Delphi 5 Enterp., Delphi 2007, Delphi 2009, Informix 4GL, VB .NET, MS/SQL, PL/SQL
BeitragVerfasst: Fr 10.06.11 08:27 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Fr 10.06.11 09:52 
user profile iconpwsolaris hat folgendes geschrieben Zum zitierten Posting springen:

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.
wiki.delphigl.com/index.php/Tutorial
Gerade für 2D ist das sehr einfach und effektiv.

user profile iconpwsolaris hat folgendes geschrieben Zum zitierten Posting springen:

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.

user profile iconpwsolaris hat folgendes geschrieben Zum zitierten Posting springen:

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).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)