android - libGDX 移动相机和图像

标签 android libgdx

我目前有一个游戏,其中有一张 480x3200 的 map ,还有一个人从上面掉下来。摄像机跟着人,人跌倒有平台。平台需要是可触摸的,这样我才能在游戏过程中旋转和移动它们,所以我把它做成了一个图像,而它最初只是一个 Sprite 。

当我将它从 Sprite 更改为图像时,一切正常,除了当人跌倒时(相机开始向下移动并跟随人),平台也随着相机移动,所以看起来它也在跌倒.平台应该只停留在一个地方,而不是随着相机移动,所以随着相机不断向下移动,平台最终会从视野中消失。

设置平台并将其添加到舞台

@Override
public void show() {
    ...
    platform = new Image(new Texture(Gdx.files.internal("img_platform.png")));
    platform.setX(2);
    platform.setY(110);
    platform.setOrigin(platform.getWidth() / 2, platform.getHeight() / 2);

@Override
public void render(float delta) {
    ....
    stage.addActor(platform);   
}

我查看了 API,无法确定是否需要更改相机、舞台或图像,或者其他我没有想到的东西。有什么想法吗?

编辑:

public WorldRenderer(FallDown game, SpriteBatch batch, World w) {
    this.cam = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT); 
    this.cam.position.set(CAMERA_WIDTH / 2, CAMERA_HEIGHT / 2, 0);
    this.cam.setToOrtho(false, CAMERA_WIDTH, CAMERA_HEIGHT);
    cam.position.set(CAMERA_WIDTH / 2, 105, 0);
    stage = new Stage(480, 800, true);

    platformTexture = new Image(new Texture(Gdx.files.internal("img_platform.png")));
    platformTexture.setX(2);
    platformTexture.setY(100);
    platformTexture.setOrigin(platformTexture.getWidth() / 2, platformTexture.getHeight() / 2);
    ...

}

public void render(float delta) { 
    stage.addActor(platformTexture);
    moveCamera();
    ...
}

private void moveCamera() {
    if (Person.getPosition().y < cam.position.y) 
        cam.position.y = Person.getPosition().y;
    cam.update();
}

...

最佳答案

通常这件事是通过将相机对准 Actor (正在掉落)并向下移动 Actor 来实现的。当 Actor 向下移动时,摄像机将跟随它保持平台静止。

这有帮助吗??

关于android - libGDX 移动相机和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438806/

相关文章:

java - 如何减少 libgdx 中 2D Sprite 的高 RAM 使用率

java - 在libgdx中绘制多个 Sprite

android - 错误 :Failed to find Build Tools revision 22. 0.1

java - 折线轮廓构造/绘制粗折线

Android 2.2 浏览器上的 Javascript 无效日期

android - list /Activity 错误

android - 证书固定绕过实践的示例 apk

java - Android在更新后仍然坏了

java - 将 RGB 颜色转换为 x,y 方向并返回

滚动视差背景,在 libgdx 中无限重复