Hallo,
ich versuche gerade so eine art Breakout-Spiel zu machen..
mein Problem dabei: wie stelle ich fest ob der Ball (canvas.ellypse) mit einem Panel (liegen als array vor) zusammenstößt und aus welcher Richtung er kommt?
Hier mein Versuch:
Delphi-Quellcode:
for i := 1 to anzahlobjects do
if (posx + 5 + rechtslinks > pnl[i].Left)
and (posx - 5 - rechtslinks < pnl[i].Left + pnl[i].Width)
and (posy + 5 + hochrunter > pnl[i].Top)
and (posy - 5 - hochrunter < pnl[i].Top + pnl[i].Height) then begin
...
wobei pnl[i] die Panels sind, 5 ist die Ballbreite und posx/y sind die Ballkoordinaten
geht auch einigermaßen nur
1. fliegt der Ball zuerst in das Panel rein bevor es abprallt
2. weiß ich nicht an welche Seite es anstößt und
3. nehme ich hierzu an, der Ball sei ein Rechteck; is also nich so perfekt gelöst...
vllt habt ihr ja eine Idee..
Danke schon ma im Vorraus