平滑相机会导致缩放系数发生变化

时间:2013-07-30 17:08:58

标签: android-camera andengine

我有一个游戏场景,用户可以放大和缩小,我用以下方式使用了流畅的相机:

public static final int CAMERA_WIDTH = 1024;
public static final int CAMERA_HEIGHT = 600;
public static final float MAXIMUM_VELOCITY_X = 400f;
public static final float MAXIMUM_VELOCITY_Y = 400f;
public static final float ZOOM_FACTOR_CHANGE = 1f;

mSmoothCamera = new SmoothCamera(0, 0,
                                 Constants.CAMERA_WIDTH,
                                 Constants.CAMERA_HEIGHT,
                                 Constants.MAXIMUM_VELOCITY_X,
                                 Constants.MAXIMUM_VELOCITY_Y,
                                 Constants.ZOOM_FACTOR_CHANGE);
mSmoothCamera.setBounds(0f, 0f,
                        Constants.CAMERA_WIDTH,
                        Constants.CAMERA_HEIGHT);

但是上面给我带来了一个问题。当用户执行放大并离开游戏场景时,其他场景行为看起来不好。我已将缩放系数设置为1来解决此问题。但现在它显示了其他场景中的摄像机翻译。因为场景切换时间太短,玩家可以很容易地看到相机翻译,这是我不想要的。相机重新定位后,一切都很完美,但如何正确设置相机位置?

例如,我的加载文本根据相机移动从下到上移动,反之亦然。如果我能提供更多详细信息,请通知我。

2 个答案:

答案 0 :(得分:1)

请提供更多详细信息,以便我可以帮助您,或者您可以使用以下方法:

mSmoothCamera.setMaxVelocity() method and mSmoothCamera.setCenter()

并增加您的MAXIMUM_VELOCITY_X和MAXIMUM_VELOCITY_Y值,例如超过800或1000.例如:

mSmoothCamera.setMaxVelocity(x, y) 

其中x = MAXIMUM_VELOCITY_X且y = MAXIMUM_VELOCITY_Y。

以下是可选的:

mSmoothCamera.setCenter(as_per_your_requirement);

其中as_per_your_requirement表示摄像机中心。

答案 1 :(得分:0)

我不知道这个问题是否仍然有效,但我也有这个问题,请尝试使用mCamera.setZoomFactorDirect(1.0f);在菜单场景构造函数中。

它对我有用