【问题标题】:Blinking tiled map Java Libgdx - rendering tiled maps闪烁平铺地图 Java Libgdx - 渲染平铺地图
【发布时间】:2014-10-23 09:48:04
【问题描述】:

我有 3 个图块,我正在尝试为图块地图渲染它们。到目前为止我的代码:public void

render(float delta) {

Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
game.batch.begin();
int w;
w = 120;

int h;
h = 1080/16;

int tileX = 0;
int tileY = 0;
Texture currentTile = null;
for(int i=0; i<w; i++){
    for(int j=0; j<h; j++){

        switch(MathUtils.random(2)){

        case 0:
            currentTile = grass;
            tiles.add(grass);
            break;
        case 1:
            currentTile = stone;
            break;
        case 2:
            currentTile = dirt;
            break;
            }
        game.batch.draw(currentTile, i*120, j*120);

    }
    }

问题在于它渲染得很好,除了瓷砖不断闪烁 - 我认为它们不断被重新渲染。但是我怎么能阻止这是使用二维数组的唯一方法,如果是这样,请展示如何:

渲染数组,在这种格式下我会放什么而不是 currentTile?:

game.batch.draw(currentTile, i*120, j*120);

设置数组,它应该是什么样子,这个?:

Texture[] tiles = new Texture[1];

如何正确地添加图块和构造数组,任何其他细节都会很有用。

【问题讨论】:

    标签: java arrays libgdx tiles


    【解决方案1】:

    根据我的经验,当您的画布区域没有绘制任何内容时,会出现闪烁的屏幕。在开始尝试绘制图块之前,先创建/填充一些填充屏幕的颜色(黑色、蓝色等)。从这里绘制你的 BG 物品、图块、玩家/实体等。

    【讨论】:

    • 它还在闪烁,是不是因为它们不断被重新渲染?
    • 通常在制作游戏时,每次游戏更新(30 次、60 次等)每秒都会绘制所有内容。如果您没有不断更新屏幕/重绘图像,那么什么都不会移动。您可能会发现此教程或其他教程很有帮助:gamefromscratch.com/page/LibGDX-Tutorial-series.aspx
    • 另外,在绘制瓷砖之前,您应该这样做:Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    • 我刚刚在 Gdx.gl.glClearColor(0, 0, 0, 1); 中添加了
    【解决方案2】:

    在每个游戏循环中,您都在为图块设置一个新的随机纹理,这意味着在 1 秒内,图块可以每秒更改多达 60 次 (fps)

    要解决这个问题,取决于图块是否应该能够更改。

    -如果没有,在构造函数中预定义

    -如果他们可以改变,设置一个定时事件和/或动作来触发它

    【讨论】:

    • 这很有用,它们在第一次加载后不会改变,你能举一个预定义它们的例子吗?
    • 你能提供更多代码吗?(主要是类/文件夹结构,如果你有的话)所以我可以做一个适合你情况的例子。
    • 你对什么感兴趣?
    • 我希望看到您绘制标题的完整课程,而不仅仅是 render() 方法。
    • 这是我绘制瓷砖的唯一其他代码:Texture Grass = new Texture(Gdx.files.internal("grass.png"));纹理石头=新纹理(Gdx.files.internal(“stone.png”));纹理污垢 = new Texture(Gdx.files.internal("dirt.png"));
    猜你喜欢
    • 2020-08-24
    • 2016-06-04
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多