さて、私は Java で比較的単純なプラットフォーマー ゲームを作成しており、レベルを生成するメソッドを持っていますが、タイルが描画されません。
public void generateDungeon() {
int y = 30;
for(int x = 0; x < block[0].length; x++) {
block[x][y] = new Block(new Rectangle(x * Tile.tileSize, y * Tile.tileSize, Tile.tileSize, Tile.tileSize), Tile.basic);
}
}
Y は同じままにしておきたいので、値が設定されています。
そこに問題があると思いますが、コンソールメッセージは次のとおりです
Exception in thread "Thread-2" java.lang.NullPointerException
at mineandbuild.Player.isCollidingWithBlock(Player.java:82)
at mineandbuild.Player.tick(Player.java:22)
at mineandbuild.Component.tick(Component.java:89)
at mineandbuild.Component.run(Component.java:110)
at java.lang.Thread.run(Unknown Source)
コンソールには、問題は次のコード行にあると表示されます。
public boolean isCollidingWithBlock(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.dungeon.block.length && y < Component.dungeon.block[0].length)
This line ---> if(Component.dungeon.block[x][y].id != Tile.air) {
if(Component.dungeon.block[x][y].contains(pt1) || Component.dungeon.block[x][y].contains(pt2)) {
return true;
}
}
}
}
return false;
}
ありがとう!