首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AndEngine BoundCamera没有以正确的方式追踪实体

问AndEngine BoundCamera没有以正确的方式追踪实体
EN

Stack Overflow用户
提问于 2013-02-12 23:55:48
回答 1查看 636关注 0票数 0

我已经定制了BoundCamera并覆盖了更新方法,如下所示:

代码语言:javascript
复制
@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;
        }
    }

}

并已将摄像机初始化为:

代码语言:javascript
复制
mCamera = new MyBoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT, 0, CAMERA_WIDTH, 0, CAMERA_HEIGHT);

我希望一直保持chase实体在中心位置。现在我面临的问题是,在start中,摄像机追逐实体。随着实体越来越高,它在y方向上超出了屏幕边界。我正在更新on update方法中的摄像机边界,以使实体始终处于中心位置,但不工作。chaseEntity.getY()获得物理体的y位置。有人知道我哪里错了吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-15 00:42:04

如果您使用

代码语言:javascript
复制
this.mBoundChaseCamera.setChaseEntity(Sptite);
setBoundsEnabled(false);

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

在评论中你提到,在某个时刻,你希望精灵下落,但不希望它在下落时留在中心。你可以直接使用

代码语言:javascript
复制
this.mBoundChaseCamera.setChaseEntity(null);

然后将精灵拖到屏幕的底部。这应该会提供类似于papi跳跃的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14836439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档