Я пытался создать игру, в которой падает человек. Размер моей фоновой текстуры составляет 480x3200, и я пытаюсь создать игру, чтобы камера удерживала человека посередине экрана во время падения, а затем останавливалась внизу. Но я не могу получить, что мой фон простирается за пределы экрана, в котором он начинается, и затем сможет увидеть остальную часть изображения.libGDX Перемещение орфографической камеры вниз по текстуре
Весь мой код прямо сейчас уменьшает изображение 480x3200 вниз, чтобы соответствовать моему текущему экрану (который я установил как 480x800), а затем, когда человек падает, фон не изменяется.
Вот мой класс WorldRenderer, где я пытался делать разные вещи, но каждый раз я никогда не смогу заставить человека увидеть другую часть изображения, когда он начнет двигаться вниз.
public WorldRenderer(SpriteBatch b, World w) {
this.world = w;
this.cam = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT);
this.cam.position.set(CAMERA_WIDTH/2, Person.position.y,0);
this.cam.setToOrtho(false, CAMERA_WIDTH, CAMERA_HEIGHT);
this.cam.update();
spriteBatch = b;
loadTextures();
}
public void render(float delta) {
person = world.getPerson();
moveCamera();
cam.update();
spriteBatch.setProjectionMatrix(cam.combined);
spriteBatch.disableBlending();
spriteBatch.begin();
renderBackground();
spriteBatch.end();
spriteBatch.enableBlending();
spriteBatch.begin();
renderObjects();
spriteBatch.end();
}
private void moveCamera() {
cam.position.set(cam.position.x, Person.position.y, 0);
cam.update();
}
private void renderObjects() {
renderPerson();
renderBlocks();
renderPlatforms();
}
private void renderBackground() {
spriteBatch.draw(backgroundTexture, cam.position.x - CAMERA_WIDTH/2, cam.position.y - CAMERA_HEIGHT/2, CAMERA_WIDTH, CAMERA_HEIGHT);
}
}
У кого-нибудь есть предложения?
Редактировать: Спасибо, я изменил ничью в renderBackground на spriteBatch.draw(backgroundTexture,0,0, CAMERA_WIDTH, CAMERA_HEIGHT * 4);
, и теперь он работает.