![]() |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
...:cat:... P.S.: Überdenke bitte Deinen Ton (vorletzter Deiner Beiträge in diesem Thread!) |
Re: Brauche HILFE beim PingPong-Spiel!!!!
inc(i); dec(i);
hält den Code aber kleiner. Und außerdem ist inc oder dec doch ein einfacher Befehl. Wenn man es schafft viele andere zu lernen, ist das meiner Meinung kein großes Problem. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Wird, wie von sakura schon gesagt, wohl durch Compiler Magic und ähnliches aufs absolut Gleiche rauskommen im Kompilat (?)...
MfG Florian :hi: |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
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:
Bei up fügst du dann noch die Panel Bewegeung des Spielers ein, in etwa so (ungetestet):
if Key = VK_UP then // Pfeiltaste hoch
begin end; if Key = VK_DOWN then // Pfeiltaste unten bzw. runter begin end;
Delphi-Quellcode:
Ich würde den Gegner so programmieren:
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; - 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. |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
Eine property (wie z.B. Panel1.Top) kann man eh nicht mit inc bzw. dec bearbeiten. und... der obere Fensterrand ist doch wohl eher bei 0 als bei 100. Aber es wird schon.... ;-) |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Hallo
Also ich würde zum testen ob das Panel am oberen Rand ist das machen:
Delphi-Quellcode:
und für den unteren Rand
if Panel.Top <= 10 then ... // Setz anstatt 10 den Wert ein wo bei dir die obere Grenze sein soll
Delphi-Quellcode:
Gruß
if Panel.Top + Panel.Height >= 100 then ... // Setz anstatt 100 den Wert ein wo bei dir die untere Grenze sein soll
MasterDG |
Re: Brauche HILFE beim PingPong-Spiel!!!!
Danke, ich änder das dann noch ab. Jetzt hab ich tatsächlich oben mit unten vertauscht :oops:
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Editfenster als Schläger und Panels und Buttons als Bälle? Dürft ihr kein Canvas oder DirectX benutzen?
|
Re: Brauche HILFE beim PingPong-Spiel!!!!
Zitat:
Es ist IMHO schon in Ordnung, Delphi-Komponenten für solche Zwecke zu "missbrauchen". Nur sollte man da versuchen, auf die richtigen zu verwenden :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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 by Thomas Breitkreuz