Где рисовать в libGDX

#android #eclipse #libgdx #screen #extend

#Android #eclipse #libgdx #экран #расширить

Вопрос:

я сделал игру в libGDX для Android. Я создал главный экран, который расширяет игру, у меня также есть пустой экран и экран игры, где вы на самом деле играете в игру. Мой вопрос в том, где мне создавать и где мне рендерить игру. я попытался создать текстуру на главном экране и отобразить на игровом экране. но я получаю ошибки.

Главный экран:

 package com.mygdx.paper;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class Main extends Game {


    Blank blankScreen;
    Game gameScreen;


   @Override
    public void create() {
            blackScreen = new blankScreen(this);
            gameScreen = new blankScreen(this);
            setScreen(blankScreen); 

    }
 }
  

Пустой экран:

 package com.mygdx.paper;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;

public class Blank implements Screen {

Main main; 

public Blank(Main main) {
    this.main= main;
}

@Override
public void render(float delta) {

    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    if (Gdx.input.isTouched()) 
        main.setScreen(main.gameScreen);
}

@Override
public void resize(int width, int height) {
}

@Override
public void show() {

}

@Override
public void hide() {

}

@Override
public void pause() {
}

@Override
public void resume() {
}

@Override
public void dispose() {

}
}
  

Обзор игры

На моем игровом экране есть все, что нужно для создания, рендеринга. Но это не работает, когда я нажимаю на пустой экран.

Комментарии:

1. Опечатка: черный экран должен быть пустым экраном?

2. Спасибо за это, но можете ли вы помочь мне с моей проблемой?

3. Что вы имеете в виду, говоря, что это не работает? Чего вы ожидали, что на самом деле произошло? На основе предоставленного вами кода он установит для себя значение blankScreen, а затем, когда вы прикоснетесь к нему, он установит для себя значение blankScreen.

Ответ №1:

Здесь:

 blackScreen = new blankScreen(this);
gameScreen = new blankScreen(this);
  

вы устанавливаете новый экземпляр blankScreen для обоих экранов: blackScreen и GameScreen. Итак, после касания вашего пустого экрана вы увидите пустой экран и так далее..

Возможно, вы действительно захотите назначить игровой экран (.. или какой бы ни был класс вашего игрового экрана) вместо этого:

 gameScreen = new GameScreen(this); 
  

Кстати: есть действительно хороший учебник по экранам в libgdx

Ответ №2:

 blackScreen = new Blank(this);
gameScreen = new Blank (this);
  

но в пользовательском интерфейсе ничего не произойдет, потому что экран остается черным

Комментарии:

1. На пустом экране я говорю, что если я коснусь экрана, он должен перейти на экран игры. но это не идет. то, что я вижу, это просто черный экран. Но если я просто воспроизвожу код своего игрового экрана, это работает, но я хочу перейти с одного экрана на другой экран, где я могу играть в игру. Но в классе game у меня есть метод рендеринга, метод создания и прочее. но кажется, что если вы отключите экран, то метод рисования не будет работать. итак, я хочу знать, где я могу создавать вещи, и где я могу рисовать вещи и отображать их.

2. Я не могу понять, чего вы хотите, это ваш реальный код? В этом коде blankScreen и GameScreen являются экземплярами Blank, поэтому в графической части вашей игры ничего не изменится