我该如何保留游戏板信息?

时间:2016-02-02 02:07:33

标签: java

我正在制作炸弹人游戏。我的问题是关于数组。我在String数组中保存有关怪物,英雄和墙壁的所有数据。数据如下:

WWWWWWWWWWW
WHWEWEWMWEW
WEWEWMWEWEW
WWWWWWWWWWW

其中W =墙,E =空,M =怪物,H =英雄

然后我比较它,如果它是墙,我使用墙壁图像等。当有什么东西移动我更新阵列。

我想知道这是一种好方法吗?或者我应该完全不同地做到这一点?

1 个答案:

答案 0 :(得分:0)

我建议采用更多的OOP方法:为不同的元素使用不同的类,并提供描述行为的方法:

if (scanner.hasNextDouble()) {
    result = scanner.nextDouble();
} else {
    System.err.println("blah blah");
    scanner.nextLine(); // discard the line
}

该字段将如下所示:

public abstract class CellElement{
    //TODO coordinates, constructor and getters

    public abstract void drawCell(Graphics g);
    public abstract CellElement explode();
}

public class Wall extends CellElement{
    //TODO constructor

    public void drawCell(Graphics g){
        g.drawImage(wallimage , getX() , getY() , null);
    }

    public CellElement explode(){
        return new Empty(getX() , getY());
    }
}

//TODO other elements

请注意,这只是一个存根,请不要复制粘贴 - 它很可能不符合您的确切要求。例如。该字段可能使用与矩阵不同的DataStructure来存储单个单元格值。