0

我已经自定义了 BoundCamera 并将更新方法覆盖为:

@Override
public void onUpdate(float pSecondsElapsed) {
    // TODO Auto-generated method stub
    super.onUpdate(pSecondsElapsed);
    if(chaseEntity != null) {

        tempHeight = (chaseEntity.getY() * PIXEL_TO_METER_RATIO_DEFAULT) + PlayLevelActivity.CAMERA_HEIGHT/2;

        if(tempHeight < heightCovered) {
            setBounds(0, 0, PlayLevelActivity.CAMERA_WIDTH, tempHeight);

            heightCovered = tempHeight;
        }
    }

}

并将相机初始化为:

mCamera = new MyBoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT, 0, CAMERA_WIDTH, 0, CAMERA_HEIGHT);

我想一直把追逐实体放在中心。现在我面临的问题是,在开始时,相机追逐实体。随着实体越来越高,它在 y 方向上超出屏幕边界。我正在更新更新方法中的相机边界,以使实体始终位于中心但不工作。ChaseEntity.getY() 获取物理体的 y 位置。有谁知道我哪里出错了?

4

1 回答 1

0

如果你使用

this.mBoundChaseCamera.setChaseEntity(Sptite);
setBoundsEnabled(false);

那么精灵仍然会一直在屏幕的中心。缺点是精灵可能超出范围。您必须实现自己的方法以将精灵保持在界限内。

在您提到的评论中,您希望精灵在某些时候下降,但不希望它在下降时保持在中心。你可以使用

this.mBoundChaseCamera.setChaseEntity(null);

然后将精灵放到屏幕底部。这应该提供类似于 papi jump 的效果。

于 2013-02-14T16:42:03.710 回答