これらの長方形の x と y を設定しようとしていますが、いつでも 99 に設定し続けます。どこに設定しても、そのままになります。私が知る限り、私が考えることができる唯一のことは、クラス内で作成されたブロッククラス x と y が 99 に設定され、配列にブロックを配置すると、99 に変更されることです。しかし、設定後に境界を設定しますブロックなので、私は混乱しています。
設定ブロック:
public class World {
public static Block[][] block = new Block[100][100];
public static Character character = new Character(40, 20, "Player001");
public static Point mse = new Point(0, 0);
public static void generateWorld() {
for (int x = 0; x < block.length; x++) {
for (int y = 0; y < block[0].length; y++) {
block[x][y] = Block.air;
if(y > 10) {
if(new Random().nextInt(5) == 1){
block[x][y] = Block.dirt;
}
}
block[x][y].setBounds(new Rectangle(x * Block.size, y * Block.size, Block.size, Block.size));
}
}
}
public static void tick() {
System.out.println(block[5][5].x);
character.tick();
for (int x = 0; x < block.length; x++) {
for (int y = 0; y < block[0].length; y++) {
block[x][y].tick();
}
}
}
public static void render(Graphics g) {
for (int x = 0; x < block.length; x++) {
for (int y = 0; y < block[0].length; y++) {
g.drawImage(block[x][y].image, x * Block.size
- Character.camX,
y * Block.size + Character.camY,
Block.size, Block.size, null);
}
}
character.render(g);
}
}
ブロッククラス:
public class Block extends Rectangle {
private static final long serialVersionUID = 6859844338993954281L;
public static int size = 16;
public String name;
public int id;
public Image image;
public static int blockCount = 0;
public boolean isSolid;
public Block(String name, int id, boolean isSolid) {
this.name = name;
this.id = id;
this.isSolid = isSolid;
try {
image = ImageIO.read(getClass().getResourceAsStream(
"/Blocks/" + name + ".png"));
} catch (Exception e) {
e.printStackTrace();
}
blockCount++;
}
public void tick() {
}
public static Block air = new Block("air", 0, false);
public static Block dirt = new Block("dirt", 1, true);
}