Hmm, neues Problem.
Wenn ich versuche, einen Ball von einer beliebigen Seite eines Shapes (Rechteck) zurückzuwerfen, verfangen sich die Bälle am Shape und "zappeln" hin und her.
Code:
if (x-(shape1.Left+shape1.width)<=r) and (y>=shape1.top)and(y<=shape1.top+shape1.height)and (vx<0)
then vx := -vx*reibungbande; //von rechts nach links
if (Y-(shape1.top+shape1.height)<=R) and (x>=shape1.left)and(x<=shape1.Left+shape1.Width) and (vy<0)
then vy := -vy*reibungbande; //unten oben
if ((shape1.left)-x <= r)and(y>=shape1.top)and(y<=shape1.top+shape1.height)and (vx>0)
then vx := -vx*reibungbande; //links rechts
if (shape1.Top-y<=r) and (x>=shape1.left)and(x<=shape1.Left+shape1.Width) and (vy>0)
then vy := -vy*reibungbande; //oben unten
V sind die Geschwindigkeiten, r der Radius, x/y der Mittelpunkt des Balls.
Wenn ich beide horizontalen oder vertikalen Abfragen gleichzeitig aktiviere kommt das Problem, und ich hab leider keine Idee, wie ich das verhindern kann.