【问题标题】:libGdx: Scrollable stage that is larger than screenlibGdx:大于屏幕的可滚动舞台
【发布时间】:2014-01-30 10:00:50
【问题描述】:

我正在尝试使用 libGdx 创建一个小游戏。对于关卡选择,我想有一个类似于 AngryBirds 中的关卡选择的东西,您可以在其中滚动一个大的“地图”,然后选择一个关卡。我知道互联网上有很多教程,我已经阅读了很多教程,但没有一个对我有帮助。

关卡选择不应该是分页的,它是一个连续的长地图。我想设置的方式是在比屏幕大的大型舞台上使用图像和按钮来选择关卡。然后我总是想根据用户滚动到的位置显示该阶段的不同部分。

可以这样设置吗?我怎么能实现它?是否可以在一个大舞台上使用 ScrollPane?

【问题讨论】:

    标签: java android libgdx scrollpane


    【解决方案1】:

    您可以简单地使用相机来代替 ScrollPane。将您的相机视口定义为例如 80 宽和 45 高 (16/9)。将您的摄像头位置设置为camWidth / 2camHight / 2,因为摄像头位置在其中间,您想从左下角的(0/0)开始吗?然后你可以画你的按钮。在 (0/0) 处绘制以在第一行和第一列上绘制。当您从 (0/0) 到 (80/45) 看时,在 (90/0) 上绘图是在相机之外。要滚动您的地图,您只需执行以下操作:camera.setPosition(cameraX + some Movement, cameraY) 向右滚动。请注意,这只是伪代码,重要的是,您在移动凸轮后调用 cam.update() 并将凸轮矩阵用于您的 spritebatch:batch.setProjectionMatrix(cam.combined)。 希望你能理解。如果没有发表评论,我会编辑。

    【讨论】:

    • 感谢您的分析。我对libGdx中的相机不是很熟悉,所以我不明白我是如何设置舞台的,以便相机只显示它的一部分。
    • 据我所知,目前一个舞台有自己的相机。试试 stage.getCamera()。存储对该相机的引用并编辑其值。要查看地图的一部分、关卡或其他内容,请将相机的视口设置为某个值(例如 8 和 8)并在该范围之外进行绘制。例如 9 和 10。要查看相机外的事物,您必须编辑其位置。视口为 (8/8) 且位置 (0/0) 的相机可以看到您从 (-4/-4) 到 (4/4) 绘制的东西。如果您将凸轮位置设置为 (7/10),您可以看到从 (3/6) 到 (11/14) 的内容。
    猜你喜欢
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多