LibGDX Tiled Map碰撞检测失败

时间:2015-12-27 19:53:21

标签: java android libgdx pacman

我正在实施一个pacman克隆,现在我就是在那种情况下,我试图通过滑动移动角色。在某些情况下,方式是打开的,但canMove()返回false:S

以下是地图示例:Map Sample

这是canMove方法:

 public boolean canMove(String direction,ArrayList<Tile> walls){
    Rectangle testBound=new Rectangle();
    switch(direction){
        case "up":
            testBound.set(posX,posY+movement,length,width);
            break;
        case "down":
            testBound.set(posX,posY-movement,length,width);
            break;
        case "left":
            testBound.set(posX-movement,posY,length,width);
            break;
        case "right":
            testBound.set(posX+movement,posY,length,width);
            break;

    }
    for(Tile f:walls){
        if(testBound.overlaps(f.getBound())){
            System.out.println(f.getPosX()+","+f.getPosY());
            return  false;
        }
    }
    return true;

}

如果有人能告诉我我做错了什么,我真的很感激。请注意,两侧的矩形和字符都是相同的宽度和高度。

0 个答案:

没有答案