gpt4 book ai didi

java - SLICK && LWJGL 闪烁问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:55:55 24 4
gpt4 key购买 nike

我在渲染图 block 时遇到闪烁问题。 渲染方法。

int tileSize = TileManager.tileSize;

for(int y = 0 ; y < mapHeight ; y++){
for(int x = 0 ; x < mapWidth ; x++){
TileManager.tiles[tileIDs[y][x]].render(x * tileSize + xOffset, y * tileSize + yOffset, g);
}
}

瓷砖管理器

public static Tile[] tiles = new Tile[256];

public static final int tileSize = 32;

public static void loadTiles(String path){

Image tileSet = GeneralUtils.getImage(path);

int row = (int)Math.floor(tileSet.getWidth() / tileSize);
int col = (int)Math.floor(tileSet.getHeight() / tileSize);

for(int y = 0 ; y < col ; y++){
for(int x = 0 ; x < row ; x++){
tiles[x + y * row] = new Tile(tileSet.getSubImage(x * tileSize, y * tileSize, tileSize, tileSize));
}
}

}

最后平铺

private Image tileImage;

public Tile(Image tileImage){
this.tileImage = tileImage;
}

public void render(int xPix, int yPix, Graphics g){
g.drawImage(tileImage, xPix, yPix);
}

如果我这样渲染,就没有闪烁。我不明白为什么?

img = new Image("Res/blabla.png");
----------------------------------------------------
int tileSize = TileManager.tileSize;

for(int y = 0 ; y < mapHeight ; y++){
for(int x = 0 ; x < mapWidth ; x++){
g.drawImage(img, x * tileSize + xOffset, y * tileSize + yOffset);
}
}

有什么区别?

最佳答案

通过使用 vsync 解决。

private static AppGameContainer gameApp;
gameApp.setVSync(true);

关于java - SLICK && LWJGL 闪烁问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775957/

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