Articles of 碰撞预测

如何从A转移到B,检查和修复命运?

我只find检查两条线之间碰撞的公式。 但是从来没有关于行动,从一个点到另一个点的一个固定点。 我需要从pA移动到pB,如果在一条线(墙)上碰撞,在墙前移动到固定的新命运点。 在哪里find这个和/或哪个是公式?

碰撞检测是由谁来做的?

我回答了如何决定哪个GameObject应该处理碰撞? ,并收到很多负面的反馈,声称碰撞检测是谁都没有关系。 我不了解这一立场。 例如: 屏幕上有100个子弹和1个玩家。 让我们假设蛮力碰撞检测,并没有优化,如层或参考。 如果碰撞检测是由子弹完成的,则每个子弹必须检测100个不同物体上的碰撞。 这是100 x 100检测,总共10000检测。 如果玩家做了检测,那总共100个检测,每个子弹一个。 我错了吗? 如果是的话,我错过了什么?

在Unity中预测碰撞的地点和时间

我有两个移动的对象。 我select了轨迹,如果它们不改变速度或轨迹,它们肯定会碰撞。 是否有简单的方法来检查物体与给定参数(当前物体位置,速度vector和速度或Unity可访问的任何其他参数)碰撞的时间点和时间?

我怎样才能让汽车在不碰撞的情况下驾驶一个路口?

我正在尝试用交通路口创建一个2D游戏: 我的汽车游戏对象需要通过交叉点,而不会相互碰撞,如果可能的话,不要停下来。 我怎样才能实现这样的行为?

当碰撞器旋转时,检测下一步的碰撞

在我的Gamemaker:Studio游戏中,我有一个碰撞脚本给我的敌人。 敌人是一个外星人, oSwarmer ,在空间里,也充满了漂stream,旋转碎片的碎片。 有些碎片几乎没有旋转,有的则旋转得很快。 当oSwarmer每一步都执行下面的碰撞脚本。 正如你所看到的,如果它要接触到一些碎片(这里叫做oSolid ),它会改变方向,远离碰撞的oSolid并保持原来的速度。 SolidTouching = instance_place(x + hspeed, y + vspeed, oSolid) if instance_exists(SolidTouching) { OriginalSpeed = CurrentSetSwarmerSpeed if speed > 0 { direction = direction – random_range(130,220) } else if speed <= 0 { direction = point_distance(x,y,SolidTouching.x,SolidTouching.y) – random_range(130,220) } speed = OriginalSpeed } 但是,有时在与一个oSolid接触的oSolid ,他们疯狂地在现场旋转。 我注意到,这似乎在oSolid正在旋转时发生。 这些生物不会移动的很快,所以他们最初的“反弹”是不足以把他们赶出去的其他人的path来迎接他们。 我认为他们随后陷入了一个不断尝试向相反的方向前进的碰撞oSolid […]

Java 2D游戏:碰撞帮助

好的,所以在我的Java2D游戏中,使用swing / awt(我听说这不是最好的结合),我试图完成冲突。 所以,问题是,即使玩家还没有碰到,Block类中的“if(player.xvel <0){}”和“if(player.xvel> 0){}”仍在执行块水平。 我怎样才能让代码在玩家水平运行/走进程序块时执行? 碰撞函数的代码如下,在Block.java中: void collide(Player player) { Rectangle player_hb = new Rectangle((int) player.x, (int) player.y, (int) player.width, (int) player.height); Rectangle block_hb = new Rectangle(x + Display.graphics_panel.WorldX, y, width, height); if (player_hb.intersects(block_hb)) { Rectangle intersection = (Rectangle) player_hb.createIntersection(block_hb); if (player.yvel > 0) { player.jumping = false; player.y -= intersection.getHeight(); } if […]

避免碰撞不仅仅是AI错误

我正在尝试实现类似于Dota 2或者Warcraft 3的游戏。我需要这个:当用户单击鼠标右键时,我要导航到点击位置。 但是,如果我的方式有障碍,我想绕过它。 这是迄今为止我所得到的: // p – where user clicked // stepSize – something like movement speed // minDistance – not important for this problem // objects – all the colliding objects // shouldStepInto – not important for this problem public boolean moveTowardsPoint(Point p, double stepSize, double minDistance, ArrayList<GameBodyObject> objects, boolean shouldStepInto) { ArrayList<GameBodyObject> […]

2D移动的精灵碰撞

我试图创造一个游戏,我有两个abjects A和B 1:我知道两个物体( Rectangles )的形状。 2:每个对象的speed和position 。 我试图弄清楚这两个物体最终是否会碰撞 。 我使用这个公式来计算物体path相交的点 y也一样 但是我还是不知道这两个物体究竟是碰撞还是会错过对方。

确定船舶和行星之间可能的第一个交叉点

这有点延伸。 问题 我有一艘船正在从一个星球上发射,我希望它能够以一个恒定的速度和方向行进,以便它能够最快地与另一个星球相交。 (美丽的图Aussen提供 ) 我忽略了初始速度,最终速度和重力。 行星的角速度和船的速度是不变的。 我试图达到的物理学不一定是现实的。 使用一些快速的math,我创建了一个function! 如果船舶采取最佳路线(由于没有重力,线性路线),该function决定了船舶随着时间的推移最小的飞越距离。 因此,通过确定飞越距离为0(当船和行星的path相交时),我可以向后工作,以便容易地确定我必须启动船的角度来实现这一点。 我创建了二分法的实现来查找函数的第一个根,但根据函数的variables,二分法并不是解决此问题的最佳方法。 所以现在我试图解决它math! 这实际上是我需要解决的问题: 任何解决scheme或想法非常感激,谢谢! TL; DR: 这意味着我想find最接近原点的函数的x交点。 鹰爪 如果你有兴趣玩这个function,我在Desmos https://www.desmos.com/calculator/tdtzt1gqkl 从地球到太阳的半径(“魔法”单位) a_0行星相对于运行的当前角度(顺时针弧度) s_0行星的角速度(顺时针弧度/秒) x_1当前的x位置(“魔法”单位) y_1当前的y位置(“魔法”单位) 船的速度(“魔术”单位每秒) x_p星球x时间位置(“魔法”单位) y_p星球在x时间的位置(“魔法”单位) d_x delta x从船到x星球的位置(“魔法”单位) d_y三角洲y位置从船到x星球(“魔法”单位) d_net在x时间从船到行星的净三角洲位置(“魔术”单位) v_x船舶速度的最佳x分量(“魔术”单位每秒) v_y船舶速度的最佳y分量(“魔术”单位每秒) x_s船x时间x位置(“魔法”单位) y_s船x时间位置(“魔术”单位) f(x) x时间从行星到船的净距离

预测敌人的运动

那么我有一个简单的2D游戏,其中所有的位置由X和Y坐标定义。 有物体以恒定速度移动。 炮塔在物体的X和Y坐标处发射子弹。 当子弹到达期望的区域时,物体已经移动。 所以我需要在考虑到子弹速度和物体速度的情况下调整炮塔的X和Y目标位置。 这是显示问题的图像。