我有一个游戏场景,用户可以放大和缩小,我用以下方式使用了流畅的相机:
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来解决此问题。但现在它显示了其他场景中的摄像机翻译。因为场景切换时间太短,玩家可以很容易地看到相机翻译,这是我不想要的。相机重新定位后,一切都很完美,但如何正确设置相机位置?
例如,我的加载文本根据相机移动从下到上移动,反之亦然。如果我能提供更多详细信息,请通知我。
答案 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);在菜单场景构造函数中。
它对我有用