我有由要创建的游戏的图像表示的实体对象。我能够检测到涉及矩形的简单碰撞,但是我不确定如何阻止对象彼此移动...

我不需要太多的物理模拟。我只是不希望任何对象都可以互相穿越。如果实体碰壁,它将停止。如果墙碰到实体,则墙会停止。

我将如何去做呢?

最佳答案

一个简单的答案就是列出所有“实体”并检查它们是否冲突。
让每个实体知道自己的半径(对于圆形碰撞)或边界框(对于矩形碰撞)。
然后进行如下循环:

for (int x = entityList.count; i < 0; i--)
{
    for (int y = entityList.count; i < 0; i--)
    {
        if (x == y) continue; // Make sure you don't check to collide with yourself
        CheckIfCollides(entityList[x], entitylist[y]);
    }
}


编辑:
每次实体尝试更新其位置并检查以确保新位置有效且未与任何碰撞时,您可能都会运行碰撞代码。

关于java - (Java)停止穿过墙壁移动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15713574/

10-10 14:41