Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#15

Re: Brauche HILFE beim PingPong-Spiel!!!!

  Alt 8. Jan 2006, 15:01
Ja das ist schon klar, aber es ist gut für lange Codes, sonst verliert man ja noch mehr die Übersicht.

Nun zum Thema:
Was hast du jetzt schon alles ?

- Einen Schläger
- Ein Spielfeld
- Eine Kollisionserkennung (Hast du da schon eine Tolleranz eingebaut ?)

Dir fehlt:
- Ein Ball

Ich hoffe ich habe alles zusammen.

Hier der Ball:
- Setze ein Shape auf die Form
- Gehe in den Objektsinspector und stelle dort unter Shape stCircle ein
- Die Farben die du brauchst kannst du dir dann unter Pen (Rahmen) und Brush (Füllung) jeweils bei Color einstellen.
- Vielleicht noch die größe anpassen und fertig.

Hast du bei der Kollisionserkennung schon eine Tolleranz (Tolleranz = Je nachdem wie der Ball aufschlägt prallt er auch wieder ab) ?

So nun stellst du bei der Form noch KeyPreview auf True und setzt im OnKeyDown-Ereigniss (auch unter Form zu finden) folgenden Code ein, um abzufragen, ob eine Taste gedrückt wurde:
Delphi-Quellcode:
  if Key = VK_UP then // Pfeiltaste hoch
  begin

  end;
  if Key = VK_DOWN then // Pfeiltaste unten bzw. runter
  begin

  end;
Bei up fügst du dann noch die Panel Bewegeung des Spielers ein, in etwa so (ungetestet):
Delphi-Quellcode:
if Key = VK_UP then // Pfeiltaste hoch
begin

  if Panel1.Top <= 0 then // Überprüfen, ob der Panel am oberen Fensterrand angekommen ist
  begin
    Panel1.Top := Panel1.Top + 2;
  end;
end;

if Key = VK_DOWN then // Pfeiltaste unten bzw. runter
begin
  if Panel1.Top >= 100 then // Überprüfen, ob der Panel am unteren Fensterrand angekommen ist
  begin
    Panel1.Top := Panel1.Top - 2;
  end;
end;
Ich würde den Gegner so programmieren:
- Ballhöhe in einer Variable speichern
- in einem Timer sagen, dass der Gegner-Schläger sich in Richtung der Ballhöhe bewegen soll, ich würde nicht gerade ein niedriges Timer-Interval nehmen.
  Mit Zitat antworten Zitat