こんにちはpeps(壊れた英語)、オブジェクトを2D配列に格納してJFrameに表示します
私は2D迷路ゲームで作業しています。 2D配列にオブジェクトを格納するには、いくつかの助けが必要です。私はこの1つでNullPointerを取得します:this.currentMap [colsCount] [rowsCount] = objects.get(col);. mainはLevelGeneratorコンストラクタを呼び出します。 itemObjectの
public final class LevelGenerator extends JFrame {
private HashMap<String, ItemObject> objects = new HashMap<>();
private ItemObject[][] currentMap;
private int HEIGHT = 320;
private int WIDHT = 480;
public JFrame frame = null;
public Level currentLevel = null;
private final List<Level> levels
= new ArrayList<Level>() {
{
add(new Level001());
add(new Level002());
add(new Level003());
}
};
public LevelGenerator() {
// Vul de frame
//this.frame = frame;
// Vul de objecten lijst
//objects.put("B", new Bazooka());
objects.put("", new EmptyTile());
objects.put("W", new Wall());
this.currentLevel = levels.get(0);
this.Load();
}
/// Laad de map in
public void Load() {
int rowsCount = 0;
int colsCount = 0;
for (String[] row : this.currentLevel.map) {
for (String col : row) {
this.currentMap[colsCount][rowsCount] = objects.get(col);
colsCount += 1;
}
rowsCount += 1;
}
this.Start();
}
public void Start() {
this.frame.setSize(this.HEIGHT, this.WIDHT);
this.frame.setLayout(new GridLayout(15, 10));
this.frame.add(this.currentLevel);
this.frame.setResizable(false);
this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.frame.setVisible(true);
}
}
コード:
public class ItemObject {
public int x = 0;
public int y = 0;
public String image = "";
public void setImage(String image) {
this.image = image;
}
}
'this.currentMap'はどこかに初期化されますか? –