поэтому у меня плитка класс:Как отредактировать плитки разных размеров?
import java.awt.Graphics;
import java.awt.image.BufferedImage;
public class Tile {
public static Tile[] tiles = new Tile[256];
public static Tile airTile = new AirTile(0);
public static Tile grassTile = new GrassTile(1);
public static Tile dirtTile = new DirtTile(2);
public static Tile rockTile = new RockTile(3);
//public static Tile anvilTile = new AnvilTile(50);
public static int w, h;
public static final int TILE_WIDTH = 64, TILE_HEIGHT = 64;
private BufferedImage texture;
protected final int id;
public Tile(BufferedImage texture, int id, int w, int h){
this.texture = texture;
this.id = id;
this.h = h;
this.w = w;
tiles[id] = this;
}
public void tick(){
}
public void render(Graphics g, int x, int y){
g.drawImage(texture, x, y, w, h, null);
}
public boolean isSolid(){
return false;
}
public int getId(){
return id;
}
public int getWidth(){
return w;
}
public int getHeight(){
return h;
}
}
и вот пример, DirtTile класс
import java.awt.image.BufferedImage;
public class DirtTile extends Tile{
public DirtTile(int id) {
super(Assets.dirt, id, 64, 64);
}
@Override
public boolean isSolid(){
return false;
}
}
Как вы можете видеть, что мой класс DirtTile дает мой класс плитки это ширина и высота, однако я хотел чтобы попытаться сделать более широкую плитку (128 х 64):
package com.zetcode;
import java.awt.image.BufferedImage;
public class AnvilTile extends Tile{
public AnvilTile(int id) {
super(Assets.anvil, id, 128, 64);
}
}
Выполнение этого устанавливает, что каждая плитка имеет ширину 128 пикселей, я хочу, чтобы класс AnvilTile имел ширину 128 пикселей, поэтому в основном мне придется внести изменения в метод Render в моем классе Tile, однако я не знаю, как это сделать, Любые предложения будут ценны.
Проблема заключается в этой строке 'public static int w, h;'. Подсказка: это связано с использованием ключевого слова 'static'. - Кстати, я бы предположил, что ваш редактор предупредит вас об этом в вашем конструкторе. – Thomas
Какая глупая ошибка, спасибо! – Alex