Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android碰撞检测精度_Android_Collision Detection - Fatal编程技术网

Android碰撞检测精度

Android碰撞检测精度,android,collision-detection,Android,Collision Detection,我有一个精灵和多个位图,可以作为子弹使用。现在的问题是,我希望子弹能跑得很快,但这又给我的碰撞检测功能带来了问题,它的工作方式是每一帧我都在敌人和子弹上创建一个矩形,并检查重叠 现在如果一颗子弹飞得很快,它会像“跳跃”一样从一个点跳到另一个点,这意味着如果一个敌人很小,子弹会“跳跃”到敌人身上,它就不会被注意到 我想知道的是,是否有一种方法可以检测两个移动物体之间是否会发生碰撞,或者只是看看子弹的轨迹中是否有敌人 我通过循环通过一系列敌人进行碰撞检测,在循环的内部,我循环所有子弹,然后为两者创建

我有一个精灵和多个位图,可以作为子弹使用。现在的问题是,我希望子弹能跑得很快,但这又给我的碰撞检测功能带来了问题,它的工作方式是每一帧我都在敌人和子弹上创建一个矩形,并检查重叠

现在如果一颗子弹飞得很快,它会像“跳跃”一样从一个点跳到另一个点,这意味着如果一个敌人很小,子弹会“跳跃”到敌人身上,它就不会被注意到

我想知道的是,是否有一种方法可以检测两个移动物体之间是否会发生碰撞,或者只是看看子弹的轨迹中是否有敌人

我通过循环通过一系列敌人进行碰撞检测,在循环的内部,我循环所有子弹,然后为两者创建一个rect,并检查每个敌人和子弹是否与rect.intersects发生碰撞

子弹航向通过一个固定点和触摸输入测量,然后通过此功能计算:

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;
}

我不知道如何修复它,我想知道一些解决方法,例如…

有几种方法可以做到这一点,但最简单的方法可能是基本上,将运动分割为时间段,并检查每个时间段。如果有几千个对象在移动,它可能不是很有效,但在大多数情况下,它工作得很好

它也有几个名字。我提供的链接有助于了解基本知识,但要了解更多信息,请搜索:

  • 帧无关碰撞检测
  • 连续碰撞检测
  • 扫描测试

子弹是否沿直线移动?谢谢,我想我会在找到解决我目前存在的滞后问题的方法后再进行研究。