-3

所以我有以下代码:

public static String currentLevel = "Level_1_1";
public boolean isCollingWithBlock(Point pt1, Point pt2){
    for(int x=(int)(this.x/Tile.tileSize);x<(int)(this.x/Tile.tileSize + 3);x++){
        for(int y=(int) (this.y/Tile.tileSize);y<(int)(this.y/Tile.tileSize + 3);y++){
            if(x >= 0 && y >= 0 && x < Component.Level_1_1.block.length && y < Component.Level_1_1.block[0].length){

                // blocks
                if(Component.Level_1_1.block[x][y].id != Tile.air && Component.Level_1_1.block[x][y].id != Tile.death && Component.Level_1_1.block[x][y].id != Tile.win){
                    if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){
                        return true;
                    }
                }

                if(Component.Level_1_1.block[x][y].id == Tile.death){
                    if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){
                        alive = false;
                        deathText = true;
                        return true;
                    }
                }

                if(Component.Level_1_1.block[x][y].id == Tile.win){
                    if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){
                        win = true;
                        return true;
                    }
                }
            }
        }
    }
    return false;   
}

这是在我的 Character 类上查看是否与级别类中的块发生碰撞(在本例中为级别 1_1)

所以因为我不只想要 1 级,我想要 1 级以上,所以我希望:

Component.Level_1_1

成为一个变量:

我目前的水平解释如下:

public static String currentLevel = "Level_1_1";

在字符类。我尝试执行以下操作:

Component.(currentLevel)

但它没有用。我能做些什么来完成以下工作?

编辑:好的,有些人不明白我想做什么。我想要的是在 isCollingWithBlock 中,使 Component.Level_1_1.block 成为一个变量。因为我将有以下级别:Component.Level_1_2.block、Component.Level_1_3.block 等。这应该由我决定:public static String currentLevel = "Level_1_1";

4

1 回答 1

1

正如 Jon Skeet 在评论中所说,您不应该按级别进行分类。相反,使用代表一个级别的单个类Level,并逐级创建该类的一个实例。

于 2013-04-19T12:52:39.417 回答