我一直在尝试制作一个有人摔倒的游戏。我的背景纹理的大小是 480x3200,我正在尝试创建游戏,以便相机在跌落时将人保持在屏幕中间,然后停在底部。但我无法让我的背景超出它开始的屏幕,然后能够看到图像的其余部分。
我现在所做的所有代码都是缩小 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);
现在可以使用。