![]() |
Problem mit Schläger beim Pong Spiel
hi leute
bei meinem Pong spiel habe ich ein panel als spielfeld und sobald man den schläger nach oben oder unten bewegtund er am ende des spielfeldes ist ragt er über das panel hinaus und man sieht ihn nicht mehr. nun die frage an euch wie kann ich es machen das der schläger nur innerhalb des Spielfeldes bleibt und nicht verschwindet??? hier mal meine procedur für die Bewegung der 2 Schläger
Delphi-Quellcode:
procedure TfrmPong.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin // --- Steuerung Schläger 2 If (Key = VK_DOWN) then //Pfeiltaste nach unten begin Schläger2.Top :=Schläger2.top + 20; end else if (Key = VK_UP) then //Pfeiltraste nach oben begin Schläger2.Top := Schläger2.Top - 20; end // --- Steuerung Schläger 1 else if (Key = 65) then //A Taste begin Schläger1.Top := Schläger1.Top + 20; end else if (Key = 81) then //Q Taste Schläger1.Top := Schläger1.Top - 20; end; |
Re: Problem mit Schläger beim Pong Spiel
du musst in der Funktion noch abfangen ob der Schläger oben oder unten anstößt, sollte im Groben so aussehen:
Delphi-Quellcode:
If (Key = VK_DOWN) and (Schlaeger2.Top >= 0) then //Pfeiltaste nach unten
begin Schlaeger2.Top :=Schlaeger2.top + 20; end else if (Key = VK_UP) (Schlaeger2.Top < (Panel.Height - Schlaeger2.Height)) then //Pfeiltraste nach oben begin Schlaeger2.Top := Schlaeger2.Top - 20; end // --- Steuerung Schläger 1 else if (Key = 65) and (Schlaeger1.Top >= 0) then //A Taste begin Schlaeger1.Top := Schlaeger1.Top + 20; end else if (Key = 81) and (Schlaeger1.Top < (Panel.Height - Schlaeger1.Height)) then //Q Taste Schlaeger1.Top := Schlaeger1.Top - 20; end; |
Re: Problem mit Schläger beim Pong Spiel
jo man danke für den tip hat aber leider nicht funtioniert, die 2 schläger gehen immer noch weg und bleiben nicht im spielfeld wenn man nach oben oder unten drückt.
ich weis nicht mehr wie ich es noch machen könnte hab schon mehrere sachen ausprobiert aber es funktioniert einfach nicht. liegt es vielleicht daran das die schläger bei mir label sind??? |
Re: Problem mit Schläger beim Pong Spiel
öhm, sorry, falsch rum gedacht^^
Delphi-Quellcode:
If (Key = VK_DOWN) and (Schlaeger2.Top < (Panel.Height - Schlaeger2.Height)) then //Pfeiltaste nach unten
begin Schlaeger2.Top :=Schlaeger2.top + 20; end else if (Key = VK_UP) and (Schlaeger2.Top > 0) then //Pfeiltraste nach oben begin Schlaeger2.Top := Schlaeger2.Top - 20; end // --- Steuerung Schläger 1 else if (Key = 65) and (Schlaeger1.Top < (Panel.Height - Schlaeger1.Height)) then //A Taste begin Schlaeger1.Top := Schlaeger1.Top + 20; end else if (Key = 81) and (Schlaeger1.Top > 0) then //Q Taste Schlaeger1.Top := Schlaeger1.Top - 20; end; |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Freeware" nach "Multimedia" verschoben.
Es handelt sich nicht um eine fertige Freeware-Applikation. |
Re: Problem mit Schläger beim Pong Spiel
jo danke nochmals hat jetzt funktioniert.
weist du vielleicht noch wie man es machen kann das wenn z.B. spieler1 die A Taste gedrückt hält das der Schläger dann dauerhaft bis zum anschlag am spielfeldrand nach unten läuft und das das dann auch bei dem Spieler 2 geht? denn bis jetzt ist es noch so wenn ein spieler das macht dann geht das bei dem 2. nicht. |
Re: Problem mit Schläger beim Pong Spiel
Moin,
das OnKeyDown-Ereignis wird einmalig beim Herunterdrücken einer Taste aufgerufen, wie es der Name sagt. Soll die Aktion ausgeführt werden, solange die Taste gedrückt ist, musst du das OnKeyPress-Ereignis nutzen. |
Re: Problem mit Schläger beim Pong Spiel
habe es jetzt mit OnKeyPress Ereignis probiert aber da lassen sich die schläger dann garnicht mehr bewegen!
|
Re: Problem mit Schläger beim Pong Spiel
Hallo
Zitat:
Delphi-Quellcode:
Bei den Pfeiltasten musst du wohl oder übel mit OnKeyDown und OnKeyUp abfragen, ob eine Taste nun gedrückt ist oder nicht und entsprechend darauf reagieren. Oder du legst die Pfeiltasten-Aktion auf P und Ö (oder Ähnliches), was das einfachste für dich sein dürfte.
else if (Key = #97) OR (Key = #65) then // a bzw. A
begin Schlaeger1.Top := Schlaeger1.Top + 20; end else if (Key = #81) OR (Key = #113) then // q bzw. Q Schlaeger1.Top := Schlaeger1.Top - 20; |
Re: Problem mit Schläger beim Pong Spiel
habe bei dem OnKeyPress Ereignis mal die tasten o und l genommen für den 2. spieler. hat aber leider immer noch nicht funktioniert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 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