Java游戏 - 使用矩形的墙壁碰撞检测

时间:2012-04-20 01:35:42

标签: java collision

我正在开发一个java游戏,我现在试图用我的瓷砖地图进行碰撞检测,但它不是我想要的工作方式。我在角色上做了4个矩形。一个在顶部,底部,左侧和右侧。矩形的宽度都是速度的2倍。

要检查矩形是否与瓷砖上的矩形相交,我使用此代码

if(LeftSide.intersects(Map.colRect[i])){
            MovingLeft = false;
            x_pos+=vel;

        }

要定义矩形我使用此代码

LeftSide = new Rectangle(x_pos,y_pos+(vel*2),(vel*2),spriteHeight-1-(vel*4));
    RightSide = new Rectangle(x_pos+spriteWidth-1,y_pos+(vel*2),(vel*2),spriteHeight-(vel*4)-1);
    UpSide = new Rectangle(x_pos+(vel*2),y_pos,spriteWidth-(vel*4)-1,(vel*2));
    DownSide = new Rectangle(x_pos+(vel*2),y_pos+spriteHeight-1,spriteWidth-(vel*4)-1,(vel*2)); 

当玩家撞到墙壁时,与速度一样进入墙壁,然后被推回墙壁的速度量。这样,只要你碰到墙壁并按住钥匙,角色就会来回走动,模糊不清。

我可以用一种算法来解决这个问题吗?还是一种不同的方法?

角色上的矩形如下所示:Rectangles

非常感谢任何帮助。我真的想解决这个问题

由于

1 个答案:

答案 0 :(得分:2)

你可能想要模拟弹性碰撞,讨论here并说明here