2017-05-19 3 views
2

Je suis nouveau sur libGDX et je l'utilise pour réaliser un gros jeu pour un projet d'école. J'ai suivi un tutoriel en ligne pour la plus grande partie du code, mais je n'arrive pas à l'exécuter à cause d'une erreur Vertex Shader. Erreur:libGDX lançant une erreur pour le vertex shader par défaut dans un 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)

Je n'ai aucune expérience avec les shaders, et n'ont pas créé un shader lors de mon projet, ou déclaré une version de toute sorte. L'erreur de shader semble remonter à la SpriteBatch créée dans mon programme. Y at-il quelque chose qui ne va pas avec mon code, ou est-ce que libGDX et mes paramètres en sont la cause?

Un peu de code supplémentaire de mes classes: De la classe splash - les points d'erreur à la déclaration 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()); 
     } 
     }); 

}

Merci, Julia

Répondre

1

Cela ressemble à un gles2.0 vs 3.0 question. SpriteBatch ne prend pas en charge GLES 3 à moins d'utiliser un shader compatible GLES 3. Une chose à vérifier est que vous n'essayez pas de forcer libGDX à gles 3.0.

Rechercher votre code pour useGL30 (il est appelé sur votre objet LwjglApplicationConfiguration comme si myLwjglAppConfig.useGL30 = false;), si cela est réglé sur true, soit supprimer la ligne ou mettre à false.

+0

merci! C'était ce que le problème était !! –