我正在制作炸弹人游戏。我的问题是关于数组。我在String数组中保存有关怪物,英雄和墙壁的所有数据。数据如下:
WWWWWWWWWWW
WHWEWEWMWEW
WEWEWMWEWEW
WWWWWWWWWWW
其中W =墙,E =空,M =怪物,H =英雄
然后我比较它,如果它是墙,我使用墙壁图像等。当有什么东西移动我更新阵列。
我想知道这是一种好方法吗?或者我应该完全不同地做到这一点?
答案 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来存储单个单元格值。