2013-07-30 17 views
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来解决这个问题。但现在它在其他场景中显示相机翻译。由于场景切换时间短,玩家可以轻松看到相机翻译,这是我不想要的。相机重新定位后,一切都很完美,但我如何正确设置相机位置?

例如,根据相机的移动,我的加载文本从下往上或反过来。请让我知道,如果我可以提供更多的细节。

回答

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意味着相机中心。

+0

没有这个建议不适合我。我在下面的文章中提供了更多细节。 http://www.andengine.org/forums/gles2/smooth-camera-zoom-factor-change-t12730.html – Siddharth

0

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

它适用于我