0

我有一个游戏场景,用户可以在其中放大和缩小,为此我以以下方式使用平滑相机:

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 以解决此问题。但现在它在其他场景中显示相机平移。因为场景切换时间太短了,玩家很容易看到镜头平移,这是我不想要的。相机重新定位后,一切正常,但如何正确设置相机位置?

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

4

2 回答 2

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 表示相机中心。

于 2013-07-31T05:01:55.607 回答
0

I don`t know if this issue is still valid but I had also this issue, try use mCamera.setZoomFactorDirect(1.0f); in your menu scene constructor.

It`s works for me

于 2014-11-07T09:50:08.627 回答