2017-05-19 69 views
2

我是libGDX的新手,正在使用它來完成學校項目的大型遊戲。我一直在關注大部分代碼的在線教程,但似乎無法運行,因爲Vertex Shader錯誤。 錯誤:libGDX爲SpriteBatch中的默認頂點着色引發錯誤

Fragment shader: ERROR: 0:1: '' : #version required and missing. ERROR: 0:7: 'varying' : syntax error: syntax error at com.badlogic.gdx.graphics.g2d.SpriteBatch.createDefaultShader(SpriteBatch.java:161) at com.badlogic.gdx.graphics.g2d.SpriteBatch.(SpriteBatch.java:124) at com.badlogic.gdx.graphics.g2d.SpriteBatch.(SpriteBatch.java:78) at com.tootireddevelopmentco.games.Splash.show(Splash.java:41) at com.badlogic.gdx.Game.setScreen(Game.java:61) at com.tootireddevelopmentco.games.RabbitRun.create(RabbitRun.java:17) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)

我沒有與任何着色器的經驗,我的項目中還沒有創建一個着色器,或聲明的版本任何種類的。着色器錯誤似乎追溯到我的程序中創建的SpriteBatch。我的代碼有什麼問題,或者是libGDX和我的設置問題。

我的課程中的一些額外代碼: 從splash類 - 錯誤點指向SpriteBatch聲明。

public void show() { 
    // apply preferences 

    batch = new SpriteBatch(); 

    tweenManager = new TweenManager(); 
    Tween.registerAccessor (Sprite.class, new SpriteAccessor()); 

    splash = new Sprite(new Texture ("img/splash.png")); 

    Tween.set (splash, SpriteAccessor.ALPHA).target(0).start(tweenManager); 
    Tween.to(splash, SpriteAccessor.ALPHA, 1.5f).target(1).repeatYoyo(1, 2).setCallback(new TweenCallback() { 

     @Override 
     public void onEvent(int arg0, BaseTween<?> arg1) { 
      // TODO Auto-generated method stub 
      ((Game) Gdx.app.getApplicationListener()).setScreen (new MainMenu()); 
     } 
     }); 

}

感謝, 朱莉婭

回答

1

這看起來像一個gles2.0 VS 3.0的問題。

除非您使用GLES 3兼容着色器,否則SpriteBatch不支持GLES 3。

有一點要檢查的是,你不要試圖強迫你libGDX 3.0。

搜索您的代碼useGL30(它在您的LwjglApplicationConfiguration對象上調用,如myLwjglAppConfig.useGL30 = false;),如果設置爲true,則刪除該行或將其設置爲false。

+0

謝謝!這就是問題所在! –