Java 当相机移动时,我的平铺地图游戏会在平铺边缘闪烁
我的屏幕上偶尔会出现从上到下的可怕的闪烁。它只发生在相机移动时(跟随我的玩家角色)。不管我在地图上的什么位置,这一切都不会发生。如果我在正确的时刻停止移动,这些线将保持可见,直到我再次开始移动。我添加了一个屏幕截图,您可以看到它的外观: 如果仔细观察,您可能会注意到这些线代表了我的“山墙”瓷砖的一部分(该瓷砖在地图中使用得稍微低一点): 正如StackOverflow上的一些人所建议的那样,我尝试将cam.update()放在update()方法的开头,但这似乎不起作用。我还确保在tileset图像中,瓷砖之间绝对没有空间。我看到的关于这个问题的大多数问题都经历了与我不同的闪烁 以下是我的屏幕代码和所有发生的渲染:Java 当相机移动时,我的平铺地图游戏会在平铺边缘闪烁,java,libgdx,flicker,tiled,Java,Libgdx,Flicker,Tiled,我的屏幕上偶尔会出现从上到下的可怕的闪烁。它只发生在相机移动时(跟随我的玩家角色)。不管我在地图上的什么位置,这一切都不会发生。如果我在正确的时刻停止移动,这些线将保持可见,直到我再次开始移动。我添加了一个屏幕截图,您可以看到它的外观: 如果仔细观察,您可能会注意到这些线代表了我的“山墙”瓷砖的一部分(该瓷砖在地图中使用得稍微低一点): 正如StackOverflow上的一些人所建议的那样,我尝试将cam.update()放在update()方法的开头,但这似乎不起作用。我还确保在tiles
public PlayScreen(MyGame game){
cam = new OrthographicCamera();
batch = new SpriteBatch();
gameMap = new TestMap(startMap);
player = new Player(this);
Gdx.input.setInputProcessor(this);
}
public void update(float delta){
player.update(delta);
Rectangle playerRect = player.getNextRectangle(delta);
Rectangle teleportRect = gameMap.teleportTo(playerRect);
if(!gameMap.isColliding(playerRect)){
player.setPosition(playerRect);
}
if(teleportRect != null){
player.setPosition(teleportRect);
}
cam.viewportHeight = Gdx.graphics.getHeight() / zoomLevel;
cam.viewportWidth = Gdx.graphics.getWidth() / zoomLevel;
cam.position.x = player.getX() + (player.getWidth() / 2);
cam.position.y = player.getY() + (player.getHeight() / 2);
cam.update();
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
gameMap.render(cam);
Gdx.graphics.setTitle("FPS: "+Gdx.graphics.getFramesPerSecond());
gameMap.getMapRenderer().getBatch().begin();
player.draw(gameMap.getMapRenderer().getBatch());
gameMap.getMapRenderer().getBatch().end();
}
这是一个非常普遍的问题。将双重填充添加到您的纹理中可能的重复。您的纹理是集中在一个图像文件中还是分开?这是一个非常常见的问题。将双填充添加到您的纹理中可能重复的纹理。您将纹理放在一个图像文件中还是分开?