【发布时间】:2012-08-10 16:59:15
【问题描述】:
我在画布上有许多实体。我正在检查玩家实体是否正在触摸食物实体。玩家实体根据用户的输入移动,食物实体在屏幕周围随机缓慢移动。目前我正在这样做:
for (var i = 0; i < foodPieces.length; i++) {
if (Math.abs(foodPieces[i].x - player.x) < (foodPieces[i].radius + player.radius)
&& Math.abs(foodPieces[i].y - player.y) < (foodPieces[i].radius + player.radius))
{
return true;
}
}
但是,玩家通常会提前检测到食物实体,最多相差 5-10 像素左右。如果重要的话,食物实体半径在一定程度上是随机的,并且玩家实体半径在整个游戏中都会增加。我试图弄清楚为什么会及早检测到碰撞以及如何让它正确检测到。有什么想法吗?
【问题讨论】:
标签: javascript html canvas collision