Я разрабатываю игру libgdx. Я хочу создать экран, где некоторые квадраты «падают» сверху вниз. Итак:
1. Мне нужно установить фоновое изображение.
2. Я должен сгенерировать некоторые квадраты случайным образом.
3. Мне нужно переместить экран снизу вверх.Автоматическая прокрутка камеры Libgdx
Чтобы получить, что я использую Sprite для фона, много спрайтов для квадратов. Затем камеру для перемещения экрана.
В методе визуализации у меня есть:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.input.setInputProcessor(stage);
batch.begin();
backgroundSprite.draw(batch);
for(Square square : squareList) {
//Gdx.app.log("[Match]", square.toString());
square.updatePosition();
square.setSize(20, 20);
square.draw(batch);
}
batch.end();
batch.setProjectionMatrix(fixedCamera.view);
fixedCamera.position.y +=1;
System.out.println("Camera position: x:" +fixedCamera.position.x+" y:"+fixedCamera.position.y);
fixedCamera.update();
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
Это код на конструкторе. Это все, что я в классе
final static int WIDTH = Gdx.app.getGraphics().getWidth();
final static int HEIGHT = Gdx.app.getGraphics().getHeight();
skin = new Skin(Gdx.files.internal("skin/flat-earth-ui.json"));
fixedCamera = new OrthographicCamera(WIDTH, HEIGHT);
stage = new Stage(new ScreenViewport());
batch = new SpriteBatch();
dynBatch = new SpriteBatch();
backgroundSprite = new Sprite(new Texture(Gdx.files.internal(scenario.getTexturePath())));
backgroundSprite.setPosition(0,0);
backgroundSprite.setSize(WIDTH, HEIGHT);
fixedCamera.position.set(0,0, 0);
fixedCamera.update();
Элементы отображаются правильно, но когда камера движется, все спрайты исчезает ... Как я могу исправить это? Есть ли способ справиться с этим более эффективно?
Gdx.input.setInputProcessor (stage); использовать в методе create() или show() – Aryan
Вы используете сцену в своей игре. fixedCamera отличается от камеры сцены? – Aryan
Что такое видовая область вашей фиксированной камеры? – Aryan