随机Java复杂路径冲突
我在随机生成的地下城迷宫游戏中遇到了碰撞问题。所以基本上,我的游戏随机生成房间和它们之间的路径。但是,我检测碰撞的方法是通过矩形:
public Rectangle getBounds(){
return new Rectangle(x, y, w, h);
}
由于我使用矩形来检测碰撞,每当我试图离开房间进入通道时,房间的碰撞矩形会阻止我这样做。 Me Me(蓝色框)试图进入绿色通道(但我不能,因为房间的碰撞矩形),红色框是房间,蓝色轮廓是碰撞框
我有没有办法解决这个问题,或者有更好的办法来检测碰撞
# 1 楼答案
您需要将冲突代码更改为不在房间中使用
Rectangle
,而是使用Line
s。java中的Rectangle
s可以方便地为Line
s和Rectangle
s使用冲突检测方法如果你的播放器有一个矩形的碰撞遮罩,这就是它在播放器中的样子注意:代码在示例中缺失,比如在级别类中更新玩家掩码和声明
List<Line2D.Float> walls
。(或无论你身在何处)