2015-05-04 2 views
-1

Здравствуйте, следующий код из моего основного класса пытается вызвать другой класс i, который реализует экран.Libgdx: Проблемы с SetScreen

if (grumpface.whiteballoon.getBoundingRectangle().overlaps(spriterect)) { 

     System.out.println("hey"); 
      setScreen(new GameOverScreen()); 
     } 
     ; 

вот класс, который я называю.

class GameOverScreen implements Screen{ 

    private Stage stage; 


    // Called automatically once for init objects 
    @Override 
    public void show() { 




     stage = new Stage(); 
     float delta = Gdx.graphics.getDeltaTime(); 
     stage.setDebugAll(true); // Set outlines for Stage elements for easy debug 

     BitmapFont white = new BitmapFont(Gdx.files.internal("hazey.fnt"), false); 
     LabelStyle headingStyle = new LabelStyle(white, Color.WHITE); 
     Label gameoverstring = new Label("game ovaaaa!", headingStyle); 
     gameoverstring.setPosition(100, 100); 
     stage.addActor(gameoverstring); 




    } 

    // Called every frame so try to put no object creation in it 
    @Override 
    public void render(float delta) { 
     Gdx.gl.glClearColor(0, 0, 0, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     System.out.println("hey"); 


     stage.act(delta); 

     stage.draw(); 



    } 

Несмотря на то, что я не возвращаю никаких ошибок стека, моя программа по-прежнему не будет переключать экран всякий раз, когда это событие выполняется. я могу сказать, что класс gameoverscreen получает вызов, потому что всякий раз, когда происходит событие, запускается System.out.println("hey"); и запускается в консоли. однако нет четкого цвета или наложения меток, как это должно быть.

+0

посмотрите пример синтаксиса, предоставленный BadLogicGames: https://code.google.com/p/libgdx-users/wiki/ScreenAndGameClasses, поскольку я не знаю контекста вашего кода, вам нужно найти синтаксис ошибки сами. – BIW

ответ

0

Не используйте Show(), как это. Вы должны инициализировать свои объекты в своем конструкторе. может быть, попытаться установить экран так:

((com.badlogic.gdx.Game) Gdx.app.getApplicationListener()) 
      .setScreen(new GameScreen()); 

Нам необходимо увидеть больше кода, чтобы помочь вам

пс я не могу комментировать, но ссылка: https://code.google.com/p/libgdx-users/wiki/ScreenAndGameClasses устарел, проверьте его: https://github.com/libgdx/libgdx/wiki

Смежные вопросы