2013-12-08 69 views
2

我正在使用scene2d进行棋盘游戏。我希望电路板可以缩放,并可以在屏幕的指定矩形部分内移动,而屏幕的其余部分保持不变。libgdx放大/拖入矩形内

我曾试图为电路板使用单独的舞台,但还没有找到一种方法来初始化视口和相机,这是正确的。

我尝试了Screen.resize(int width, int height)中的以下代码作为测试,但boardStage变得垂直拉伸,放大时(如这里),它填充整个屏幕。

hudStage.setViewport(8, 12, true, 0, 12, width, height); 
boardStage.setViewport(8, 8, true, 0, 10, width, width); 

OrthographicCamera cam = (OrthographicCamera) boardStage.getCamera(); 
cam.zoom =.5f; 

这样做的正确方法是什么?

回答

2

我们为我们的棋盘游戏实施了类似的缩放。 https://play.google.com/store/apps/details?id=net.peakgames.mobile.rummi.android

我们正在使用的被缩小的第二照相机:

  • 甲scissorStack用于裁剪第二照相机渲染区域。
  • 仅当电路板上有触摸/拖动时才启用第二台摄像机。
  • 我们正在改变相机的位置,因为用户在电路板上拖动。

希望这有助于..

+0

谢谢!这似乎是要走的路。如果我正确理解这一点,calculateScissors的clipBounds参数将使用舞台坐标而不是屏幕坐标。这意味着每次相机平移或缩放时,我都必须重新计算clipBounds区域,对吗? –

+0

是的,这就是我们正在做的。 – ilkinulas

0

我想你想使用一个scene2d ScrollPane而不是一个新的舞台。我不完全确定你会如何做这个缩放,但我认为缩放的东西应该工作。

+0

如果我有没有必要放大,这似乎是一个很好的解决方案,但变焦可复杂的事情。 –