![]() |
Re: Problem mit Schläger beim Pong Spiel
Hast du's so und KeyPreview des Formulars auf true?
Delphi-Quellcode:
Das geht bei mir wunderbar.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin if (Key = #97) OR (Key = #65) then // a bzw. A Schlaeger1.Top := Schlaeger1.Top + 20 else if (Key = #81) OR (Key = #113) then // q bzw. Q Schlaeger1.Top := Schlaeger1.Top - 20 else if (Key = #108) OR (Key = #76) then // l bzw. L Schlaeger2.Top := Schlaeger2.Top + 20 else if (Key = #111) OR (Key = #79) then // o bzw. O Schlaeger2.Top := Schlaeger2.Top - 20; end; |
Re: Problem mit Schläger beim Pong Spiel
ich hatte die Eigenschaft KeyPreview nicht auf true gestellte aber nachdem ich das gemacht hatte funktionierte es trotzdem noch nicht. die schläger bewegen sich einfach nicht.
|
Re: Problem mit Schläger beim Pong Spiel
Der Code, den ich gerade eben gepostet habe, funktioniert ganz sicher. Kommen Fehler oder tut sich einfach nichts?
|
Re: Problem mit Schläger beim Pong Spiel
nee es kommen keine fehler es tut sich nur nichts
|
Re: Problem mit Schläger beim Pong Spiel
Liste der Anhänge anzeigen (Anzahl: 1)
Hm das kann eigentlich nicht sein. Den Code hast du sicher im OnKeyPress-Ereignis? Ich habe den Code vorhin getestet und der geht bei mir. :gruebel:
Edit: ich habe mein Projekt einmal angehängt. |
Re: Problem mit Schläger beim Pong Spiel
ja so hatte ich es auch aber hat nicht funktioniert.
bei dem was du da hattest das hab ich ja auch aber im OnKeyDown Ereignis. da tritt aber das gleiche problem auf wie bei mir. es soll nämlich wenn man a (nach unten) gedrückt hält der 1. schläger dauerhaft nach unten laufen bis man a los lässt und wenn der 2. spieler das auch macht dann sollte das bei dem auch funktionieren. es geht aber immer nur jeweil bei einem vom beiden spielern. |
Re: Problem mit Schläger beim Pong Spiel
Jetzt verstehe ich dein Problem! Bei dir klappt es nicht, dass sich Schläger 1 und 2 gleichzeitig bewegen lassen. :wall:
Das könntest du leicht über einen Timer (Intervall max. 50) lösen:
Delphi-Quellcode:
Nur kann es dabei vorkommen, dass bei einem Tastendruck der Schläger um 2 Einheiten bewegt wird bzw. bei zu kurzem Druck gar nicht. Nur wie man das am gescheitesten löst, kann ich dir nicht sagen. Natürlich könnte man das in einen Thread auslagern, doch das halte ich fast für etwas overkilled.
procedure TForm1.Timer1Timer(Sender: TObject);
begin if getAsyncKeyState(65) < 0 then // a Schlaeger1.Top := Schlaeger1.Top + 20 else if getAsyncKeyState(81) < 0 then // q Schlaeger1.Top := Schlaeger1.Top - 20; if GetAsyncKeyState(vk_up) < 0 then // arrow up Schlaeger2.Top := Schlaeger2.Top - 20 else if GetAsyncKeyState(vk_down) < 0 then // arrow down Schlaeger2.Top := Schlaeger2.Top + 20 end; |
Re: Problem mit Schläger beim Pong Spiel
jo da haste recht.
funktioniert. na da kann ich mich ja jetzt wieder anderen sachen meines projektes zuwenden. hab mich ja auch lange genug an der einen sache aufgehalten. und danke nochmal an alle ohne euch hätte ich das bestimmt nicht geschafft. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz