Wie soll da denn bitte etwas hochzähöen, wenn du den Wert von Punktescore nicht veränderst?
( immer wieder 0+1 ist und bleibt immer nur 1 )
Zitat:
If SBall.Top=SPlayer.Top-SBall.Top then
Außerdem zählt es nur, wenn dieser Vergleich ganz genau trifft
und jetzt beantworte dir die Frage, ob hier sich hier etwas nur in Einerschritten bewegt.
Und dann hab ich auch noch ein paar Fragen:
Zitat:
PosX, PosY, X, Y, Punktescore: Integer;
Wieso sind diese Variablen global und liegen nicht in TForm1 (private) ?
Zitat:
Delphi-Quellcode:
if key = VK_ESCAPE then
halt;
So beendet man kein Programm
Close der MainForm oder
Application.Terminate
.
Zitat:
Delphi-Quellcode:
procedure TForm1.PMenuClick(Sender: TObject);
begin
form1.close; form2.show
end;
Wieso greifst du da auf Form1 zu, wo du doch schon im Code der TForm1 bist?
Self verwenden, oder nichts angeben. (nichts = ein implizites Self)
Zitat:
If SBall.Top=SPlayer.Top-SBall.Top then
Sicher, daß die Berechnung, bzw. der Vergleich so korrekt ist?
Es ist jetzt zwar bissl spät, aber ich versteh grade irgendwie nicht, was du da eigentlich prüfen willst.
Hmmm, bissl die Gleichung umstellen ...
If SBall.Top = -SBall.Top + SPlayer.Top then
If SBall.Top * 2 = SPlayer.Top then
SPlayer.Top soll doppelt so groß sein, wie SBall.Top ?
Und die Form1 ist doch die MainForm? (das die erste Form-Instanz, welche vom Delphi automatisch erstellt wird)
Wenn ja, dann wird das so nicht funktionieren, denn siehe dem Punkt, wo es um das Beenden eines Programms geht.
Was ein Debugger ist, das weißt du?
Zitat:
Das Gameplay läuft im Hintergrund ab ohne zu stoppen
Das hab ich jetzt nicht verstanden.
Zitat:
Game Over Anzeige erscheint nicht wenn das Programm verloren hat
Und das kann dir keiner beantworten, da man hierfür nichtmal etwas Code sieht/erkennt, welcher dafür verantwortlich sein könnte.
Ach ja, ich sehe da mindestens noch ein 4. Problem.
Tipp: Drücke mal ganz oft/lange auf die Pfeiltasten Links oder Rechts.