2017-05-19 13 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와 그에 대한 나의 설정이 문제입니다.

내 클래스의 일부 추가 코드 : 스플래시 클래스에서 - 오류가 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

이 3.0 문제을 대 gles2.0 것 같습니다.

GLES 3 호환 셰이더를 사용하지 않는 한 SpriteBatch는 GLES 3을 지원하지 않습니다.

확인할 사항 중 하나는 libGDX를 gles 3.0으로 강제하지 않는 것입니다.

코드가 useGL30 (LwjglApplicationConfiguration 개체라고하므로 myLwjglAppConfig.useGL30 = false;이라고 함)을 검색합니다.이 값이 true로 설정되어 있으면 해당 행을 제거하거나 false로 설정하십시오.

+0

감사합니다. 그게 문제 였어 !! –