gpt4 book ai didi

java - 棋子无法正确渲染

转载 作者:行者123 更新时间:2023-11-30 07:59:27 25 4
gpt4 key购买 nike

我正在创建一个国际象棋游戏,现在我正在添加棋子。所有的部分都正确地单独渲染,但现在我试图将它们设置在它们的位置,它们没有出现在它们应该出现的位置。我的代码中的什么导致片段生成错误?

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);

}

}

}

这是它生成的样子:

enter image description here

最佳答案

我猜你的棋子是黑色的,你的棋盘也是黑色的,所以你看不到它们。

无关,但您正在使用 HashMap 来存储您的作品的坐标。这是完全没有必要的,我建议您使用积分。

关于java - 棋子无法正确渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com