gpt4 book ai didi

java - 从瓦片 map 加载子图像

转载 作者:行者123 更新时间:2023-12-01 04:32:13 25 4
gpt4 key购买 nike

我正在尝试开发我的第一个游戏。我在加载从 map 中提取的图 block 时遇到严重问题。这是我到目前为止编写的代码,只是愿意显示第一个图 block 。

public class TileMap {

//FIELDS
public int Tilemapx;
public int Tilemapy;
private int nRows = 8;
private int nColumns = 8;
public int TileWidth = Panel.WIDTH / nColumns;
public int TileHeight = Panel.HEIGHT / nRows;
public BufferedImage EntireMap;
public BufferedImage SingleTile;

public TileMap (){
String EntireMappath = "res/Tiles.png";
try {
EntireMap = ImageIO.read(new File (EntireMappath));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void drawTile (){
for (int Tilemapx = 0; Tilemapx < Panel.WIDTH / nColumns; Tilemapx++){
for (int Tilemapy = 0; Tilemapy < Pannel.HEIGHT / nRows; Tilemapy++){
BufferedImage SingleTile = EntireMap.getSubimage(100, 100, Tilemapx, Tilemapy);

}
}
}
}

并且,在 Panel 类中,我尝试绘制图 block ,但没有出现任何内容(前两个图像按预期工作)

public void draw() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;
}

Graphics g = bs.getDrawGraphics();
g.drawImage(bg, 0, 0, getWidth(), getHeight(), null);
g.drawImage(heroImg1, hero.cordX, hero.cordY, hero.diameter, hero.diameter, null);
g.drawImage(tiles.SingleTile, 100, 200, tiles.Tilemapx, tiles.Tilemapx, null);
g.dispose();
bs.show();
}

最佳答案

您应该在 TileMap 中提供一个方法,该方法返回给定图 block 的适当子图像。然后,在draw中,您可以调用该方法,获取图像并将其绘制在图形上。如果您想绘制整个板,只需使用循环即可。

关于java - 从瓦片 map 加载子图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17857278/

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