Zitat von
speedy23:
hey leute, mein projekt nimmt gestalt an und hat potential
ich habe ja vor einiger zeit schonmal von meinem breakit(spiel) problem gesprochen
und nun das grundgerüst fertiggestellt.
Du hast ein bischen Oberfläche programmiert, ein Grundgerüst ist leider überhaupt nicht vorhanden.
Lies mal was ich hier
Memory zum grundsätzlichen Aufbau eines Spiels oder Anwendung allgemein geschrieben hab und schau dir mein Beispiel an.
Die Anwendung wird in deiner jetzigen Struktur zu einem endlosen Spagettiprogramm mutieren.
Ein deutliches Zeichen ist, daß du schon jetzt bei den par Zeilen den Fehler nicht finden kannst.
Zum eigentlichen Fehler:
Überprüfe alle Positionsvergleiche auf "=" , in der Regel ist es sicherer auf "<=" oder ">=" zu testen.
Für die Änderung der Bewegungsrichtung ist es nicht ausreichend das Vorzeichen des Geschwindigkeitsvektors zu ändern.
Man muss auch prüfen ob der Vektor schon "umgedreht" wurde.
Bsp.: Das Objekt hat den oberen Rand überschritten, der Geschwindigkeitsvektor muss also für y-Richtung positive werden.
Delphi-Quellcode:
if ObererRandUeberschritten then
begin
if dy < 0 then
dy := -dy;
end
else if UntererRandUeberschritten then
begin
if dy > 0 then
dy := -dy;
end;
{Objekt bewegen}
y := y + dy;