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.