Android碰撞检测精度
我有一个精灵和多个位图,可以作为子弹使用。现在的问题是,我希望子弹能跑得很快,但这又给我的碰撞检测功能带来了问题,它的工作方式是每一帧我都在敌人和子弹上创建一个矩形,并检查重叠 现在如果一颗子弹飞得很快,它会像“跳跃”一样从一个点跳到另一个点,这意味着如果一个敌人很小,子弹会“跳跃”到敌人身上,它就不会被注意到 我想知道的是,是否有一种方法可以检测两个移动物体之间是否会发生碰撞,或者只是看看子弹的轨迹中是否有敌人 我通过循环通过一系列敌人进行碰撞检测,在循环的内部,我循环所有子弹,然后为两者创建一个rect,并检查每个敌人和子弹是否与rect.intersects发生碰撞 子弹航向通过一个固定点和触摸输入测量,然后通过此功能计算:Android碰撞检测精度,android,collision-detection,Android,Collision Detection,我有一个精灵和多个位图,可以作为子弹使用。现在的问题是,我希望子弹能跑得很快,但这又给我的碰撞检测功能带来了问题,它的工作方式是每一帧我都在敌人和子弹上创建一个矩形,并检查重叠 现在如果一颗子弹飞得很快,它会像“跳跃”一样从一个点跳到另一个点,这意味着如果一个敌人很小,子弹会“跳跃”到敌人身上,它就不会被注意到 我想知道的是,是否有一种方法可以检测两个移动物体之间是否会发生碰撞,或者只是看看子弹的轨迹中是否有敌人 我通过循环通过一系列敌人进行碰撞检测,在循环的内部,我循环所有子弹,然后为两者创建
public void calcPoint(float x, float y) {
double alfa = Math.atan(x / y);//x and y are inputs
bulletPointX = (float) Math.sin(alfa) * speed;
bulletPointY = (float) Math.cos(alfa) * speed;
}
我不知道如何修复它,我想知道一些解决方法,例如…有几种方法可以做到这一点,但最简单的方法可能是基本上,将运动分割为时间段,并检查每个时间段。如果有几千个对象在移动,它可能不是很有效,但在大多数情况下,它工作得很好 它也有几个名字。我提供的链接有助于了解基本知识,但要了解更多信息,请搜索:
- 帧无关碰撞检测
- 连续碰撞检测
- 扫描测试