棋子不能正确渲染
我正在创建一个国际象棋游戏,现在我正在添加这些棋子。 所有作品都单独呈现,但现在我试图将它们放置在它们的位置,但它们并未出现在应该出现的位置。 什么在我的代码导致片断产生错误?
public class Tile {
Graphics g;
public static HashMap<HashMap<Integer, Integer>, String> pieces = new HashMap<>();
public Tile(Graphics g) {
this.g = g;
}
public static void setPieceLoc(int x, int y, String tile) {
x = (x*64) + 20;
y = (y*64) + 20;
HashMap<Integer, Integer> tileNum = new HashMap<>();
tileNum.put(x, y);
pieces.put(tileNum, tile);
}
public void tick() {
registerPieces();
}
private static void registerPieces() {
//Pawns
for(int x = 0; x < 8; x++) {
setPieceLoc(x, 1, "pawn");
setPieceLoc(x, 6, "pawn");
}
for(int y = 0; y < 1; y++) {
int cy = y*7;
setPieceLoc(0, cy, "rook");
setPieceLoc(1, cy, "knight");
setPieceLoc(2, cy, "bishop");
setPieceLoc(5, cy, "bishop");
setPieceLoc(6, cy, "knight");
setPieceLoc(7, cy, "rook");
}
setPieceLoc(3, 0, "queen");
setPieceLoc(4, 0, "king");
setPieceLoc(3, 0, "queen");
setPieceLoc(4, 7, "king");
}
public void render(Graphics g) {
for(HashMap<Integer, Integer> tile : pieces.keySet()) {
int x = 0;
int y = 0;
for(Integer xy : tile.keySet()) {
x = xy;
y = tile.get(xy);
}
String piecesName = pieces.get(tile);
g.drawImage(ChessImages.getPieceImage(piecesName), x, y, null);
}
}
}
这是它产生的样子:
我的猜测是你的棋子是黑色的,而你的棋盘是黑色的,所以你看不到它们。
不相关,但是您使用HashMap来存储碎片的坐标。 这是完全不必要的,我会建议你使用一个Point。
链接地址: http://www.djcxy.com/p/84627.html上一篇: Chess Pieces not rendering correctly
下一篇: Moving a piece