我正在尝试使用 libGdx 创建一个小游戏。对于关卡选择,我想要一个类似于 AngryBirds 中的关卡选择的东西,您可以在其中滚动浏览一个大的“ map ”,然后选择一个关卡。我知道互联网上有很多教程,我已经通读了很多,但没有一个真正对我有帮助。
关卡选择不是分页的,而是一个连续的长 map 。我想设置它的方式是在比屏幕大的大舞台上放置图像和用于级别选择的按钮。然后我总是想根据用户滚动到的位置显示该阶段的不同部分。
可以这样设置吗?我该如何实现?是否可以在一个大舞台上使用 ScrollPane?
最佳答案
您可以简单地使用摄像头来代替 ScrollPane。将您的相机视口(viewport)定义为例如 80 宽和 45 高 (16/9)。将你的摄像头位置设置为 camWidth/2
camHight/2
因为摄像头位置在中间,你想从左下角的 (0/0) 开始正确的?然后你可以画你的按钮。 Draw at (0/0) 在第一行第一列上绘制。当您从 (0/0) 到 (80/45) 看时,在 (90/0) 上绘图不在相机内。要滚动 map ,您只需执行以下操作:camera.setPosition(cameraX + some Movement, cameraY)
向右滚动。请注意,这只是伪代码,重要的是,您在移动凸轮后调用 cam.update()
并将凸轮矩阵用于您的 spritebatch:batch.setProjectionMatrix(cam .组合)
。
希望你能理解。如果不发表评论,我会编辑。
关于java - libGdx:大于屏幕的可滚动阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453204/