gpt4 book ai didi

Libgdx - 如何在单个视口(viewport)内旋转屏幕?

转载 作者:行者123 更新时间:2023-12-02 08:39:58 25 4
gpt4 key购买 nike

我在 Libgdx 中构建了一个游戏,它使用传入某些屏幕的单个 FitViewport(Splash/Intro/Game/Menu/Pause 等)。

每个屏幕都有自己的舞台,其中包含 Actor 组 - 我编写了一个自定义渲染循环,以允许屏幕淡入/淡出、左右滑动或在彼此后面渲染 - 这一切都很棒。

我现在想要一个“UI”屏幕,它可以在智能手机上旋转以匹配其方向(游戏中的其他所有内容都不会旋转)。

我可以通过在 SpriteBatch 上使用 TransformMatrix 来直观地完成此工作,但这不会影响舞台的“触摸”检测(或 debugdraw),并且似乎无法在舞台内执行此操作(localtoparentcoords 允许旋转)和规模但不是转型)

请记住,它不会是“正方形”(FitViewport 强制执行 16x9 比例),因此它需要平移和旋转...

注意:我尝试过使用相机,但这是错误的范例 - 相机是同一事物的不同 View - 我希望将不同的事物(变换和旋转)绘制到同一 View 中!

另请注意:我已经开始创建自己的 Screen/Stage 类版本来执行此操作 - 我认为这可能比让现有代码正常工作更快,但如果我第一个想要这个的人?

最佳答案

我想我已经通过退后一步并查看舞台/ Actor 系统的工作原理来解决了这个问题。

旋转和变换整个舞台的想法充满了复杂性 - 我可以在 SpriteBatch 级别上完成它,这会分散我的注意力,导致浪费大量时间 - 遗憾的是。

直到我意识到,当我计算所有 UI(Actor)元素相对于屏幕中心或角落的位置时,我可能还需要采取进一步的步骤,同时旋转和变换它们时间!我还意识到对它们进行分组,使这变得非常简单(事实上,我可以通过使用 2 个单独的组来拥有静态和旋转元素!)

旋转/移动 Actor 当然也会调整它的边界框/触摸区域 - 所以我现在有了一个适当的舞台/组/Actor 模型,它随着设备旋转而旋转 - 我可能只是静态信息(分数)甚至是动态菜单或台球游戏中“提示”的叠加层或其他...

正如爱迪生所说 - 我没有浪费 2 天,我只是花了 2 天想出了很多我现在知道行不通的想法!

关于Libgdx - 如何在单个视口(viewport)内旋转屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com