AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Problem mit Schläger beim Pong Spiel
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Schläger beim Pong Spiel

Ein Thema von fantasyboy973 · begonnen am 15. Mär 2007 · letzter Beitrag vom 17. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
fantasyboy973

Registriert seit: 25. Jan 2007
9 Beiträge
 
#1

Problem mit Schläger beim Pong Spiel

  Alt 15. Mär 2007, 14:30
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;
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit Schläger beim Pong Spiel

  Alt 15. Mär 2007, 14:43
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;
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
fantasyboy973

Registriert seit: 25. Jan 2007
9 Beiträge
 
#3

Re: Problem mit Schläger beim Pong Spiel

  Alt 15. Mär 2007, 15:35
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???
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 11:22
ö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;
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
17. Mär 2007, 13:05
Dieses Thema wurde von "Matze" von "Freeware" nach "Multimedia" verschoben.
Es handelt sich nicht um eine fertige Freeware-Applikation.
fantasyboy973

Registriert seit: 25. Jan 2007
9 Beiträge
 
#6

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 13:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 13:18
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.
  Mit Zitat antworten Zitat
fantasyboy973

Registriert seit: 25. Jan 2007
9 Beiträge
 
#8

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 13:38
habe es jetzt mit OnKeyPress Ereignis probiert aber da lassen sich die schläger dann garnicht mehr bewegen!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 14:48
Hallo

Zitat von fantasyboy973:
habe es jetzt mit OnKeyPress Ereignis probiert aber da lassen sich die schläger dann garnicht mehr bewegen!
Tatsache, OnKeyPress wird nur bei Tasten aufgerufen, die einen ASCII-Code senden und dies ist bei den Pfeiltasten nicht der Fall. Für die Buchstaben ginge es so:

Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
fantasyboy973

Registriert seit: 25. Jan 2007
9 Beiträge
 
#10

Re: Problem mit Schläger beim Pong Spiel

  Alt 17. Mär 2007, 20:57
habe bei dem OnKeyPress Ereignis mal die tasten o und l genommen für den 2. spieler. hat aber leider immer noch nicht funktioniert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz