2017-03-03 188 views
0

因此,我正在使用批處理,並在start()end()之間,我試圖繪製兩個紋理。但是,其中只有一個正在繪製。我嘗試刪除正在繪製的圖像,以查看其他圖層是否會繪製,但該特定紋理仍不會繪製。紋理的設置方式完全相同,唯一的區別是沒有繪製的紋理包含一些透明度。LibGDX紋理不會繪製

private static Texture bg1 = new Texture(Gdx.files.internal("bg1.png")); 
private static Texture bg2 = new Texture(Gdx.files.internal("bg2.png")); 
private static int bgx1 = 0, bgx2 = 0; 

public static void create() { 
    bg1.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); 
    bg2.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); 
} 

public static void render() { 
    bgx1 += 1; bgx2 += 1.7; 
    Core.batch.draw(bg1, 0, 0, bgx1, 0, Gdx.graphics.getWidth(), bg1.getHeight()); 
    Core.batch.draw(bg2, 0, 0, bgx2, 0, Gdx.graphics.getWidth(), bg2.getHeight()); 
} 
+0

歡迎使用stackoverflow。請檢查以下頁面,並更新您的問題:http://stackoverflow.com/help/how-to-ask – Xoppa

+0

嗯,我試圖添加類的代碼,但它格式化可怕 – GiraffeKey

+0

請[編輯您的問題](http: //stackoverflow.com/posts/42588367/edit)包含代碼,而不是將代碼放在評論中。 – SomethingDark

回答

0

從我所看到的,你所使用的具有INT類型的第四個參數的draw()方法。當繪製第二紋理,您的第四參數bgx2目前浮子代替INT(因爲bgx2 = 1.7)。也許這可能是問題?如果您查看繪製第一個紋理,draw()的第四個參數是int,因爲它應該是。對於bgx2嘗試使用整數值而不是1.7。另外,在batch.begin()和batch.end()之間放置所有draw()方法。

有關更多信息,請參閱libGDX文檔:https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Batch.html#draw-com.badlogic.gdx.graphics.Texture-float-float-int-int-int-int-

+0

我實際上已將該值更改爲int。另外,每當我加載bg2.png時,即使我把它和bg1做成相同的圖像,它仍然不起作用。這個不成立。 – GiraffeKey

+0

我試過讓bg1的值加載bg2.png。仍然不起作用。 – GiraffeKey

+0

所以它必須是文件本身的問題。這是沒有道理的,因爲有一次我從字面上複製並粘貼了bg1.png,將它重命名爲bg2.png,而且我仍然只能加載bg1.png。 – GiraffeKey