我有一個小圓圈,裏面是一個大圓圈。小圓圈正在飛行,如果小圓圈來到大圓圈的邊界,它就會碰撞。我幾乎設法這樣做,但它仍然不能完美。有時圓圈在邊界之前碰撞,有時在邊界之後。這是我的代碼:畫布:大圓內的球應該偏轉
if (!(Math.pow((xSmallCircle + radiusSmallCircle) - (xBigCircle), 2) + Math.pow((
ySmallCircle + radiusSmallCircle) - yBigCircle, 2) < Math.pow(radiusBigCircle + 10, 2))) {
xVelocity *= -1;
yVelocity *= -1;
} else if (!(Math.pow((xSmallCircle - radiusSmallCircle) - (xBigCircle), 2) + Math.pow((
ySmallCircle - radiusSmallCircle) - yBigCircle, 2) < Math.pow(radiusBigCircle + 10, 2))) {
xVelocity *= -1;
yVelocity *= -1;
} else if (!(Math.pow((xSmallCircle + radiusSmallCircle) - (xBigCircle), 2) + Math.pow((
ySmallCircle - radiusSmallCircle) - yBigCircle, 2) < Math.pow(radiusBigCircle + 10, 2))) {
xVelocity *= -1;
yVelocity *= -1;
} else if (!(Math.pow((xSmallCircle - radiusSmallCircle) - (xBigCircle), 2) + Math.pow((
ySmallCircle + radiusSmallCircle) - yBigCircle, 2) < Math.pow(radiusBigCircle + 10, 2))) {
xVelocity *= -1;
yVelocity *= -1;
}
任何想法爲什麼這是行不通的?
...我的解決方案有幫助嗎? – FrankieTheKneeMan
非常感謝,它工作完美! (...我昨天沒有上網,所以我看不到你的答案;)) – user1590534