【问题标题】:libgdx zoom/drag inside rectanglelibgdx 在矩形内缩放/拖动
【发布时间】:2013-12-08 17:42:46
【问题描述】:

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

我尝试为板子使用单独的阶段,但没有找到一种方法来初始化视口和相机以正确执行此操作。

我在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;

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

【问题讨论】:

    标签: java libgdx scene2d


    【解决方案1】:

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

    我们正在使用第二个变焦相机:

    • scissorStack 用于剪辑第二个相机渲染区域。
    • 只有在板上有触摸/拖动时才会启用第二个摄像头。
    • 当用户在板上拖动时,我们正在更改相机位置。

    希望这会有所帮助..

    【讨论】:

    • 谢谢!这似乎是要走的路。如果我正确理解这一点,则用于计算剪刀的 clipBounds 参数使用舞台坐标而不是屏幕坐标。这意味着每次相机平移或缩放时我都必须重新计算 clipBounds 区域,对吧?
    • 是的,这就是我们正在做的事情。
    【解决方案2】:

    我认为您想使用 scene2d ScrollPane 而不是新舞台。我不完全确定您将如何使用它进行缩放,但我认为缩放的东西应该可以工作。

    【讨论】:

    • 如果我不需要缩放,这似乎是一个不错的解决方案,但缩放可能会使事情复杂化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多