Bastle gerde an einem sehr schlichtem Pong in 2D mit OpenGL.
Kollision an den Wänden klappt soweit aber nicht am Schlaeger.
Habe eine feste x Koordinate des Schlägers (-26) und eine x bzw. y Koordinate für den Ball. (xb und yb)
Den Ball bewege ich mit:
Delphi-Quelltext
1: 2:
| xb:=xb+0.05*movementx; yb:=yb+0.05*movementy; |
movementx ist entweder 1 oder -1, movementy genauso. (quasi meine Richtungsvektoren)
Meine Schlägerkollision ist folgende:
Delphi-Quelltext
1: 2:
| if (movementx=-1) AND (movementy=1) AND (xb=-24.5) AND (yb>=y) AND (yb<=y+8) then movementx:=1; |
Also:
movementx=-1 (Ball fliegt nach links)
UND movementy=1 (Ball fliegt nach oben)
UND der Ball ist an der x-Position -24.5 (also am Schläger, denn der Schläger ist 1.5 Einheiten breit)
UND der Ball ist an einer y-Position größer gleich die y-Position des Schläger
UND der Ball ist an einer y-Position kleiner gleich der Länge des Schlägers ( Der Schläger ist 8 Einheiten lang)
Sind alle Bedingungen erfüllt befinden sich der Ball am Schläger (oder?)
dann soll der Ball natürlich nach rechts fliegen, also movementx:=1 und nach oben, aber tut er ja schon, deswegen spar ich mir movementy
Hab ich da irgendwo nen Denkfehler?
Danke schon mal