【问题标题】:libgdx modelinstances position changed after calling camera.position.set or camera.lookat调用 camera.position.set 或 camera.lookat 后 libgdx modelinstances 位置发生变化
【发布时间】:2017-11-26 08:53:43
【问题描述】:

我的相机具有以下初始设置: camera.lookAt(200f, 100f, -300f); camera.position.set(0f, 0f, 0f); 模型实例显示如下: initial image

我在单击时编写了一个按钮并调用了一组方法: camera.lookAt(200f, 100f, -300f); camera.position.set(0f, 0f, 0f);

屏幕变成了如下: call camera methods again

在初始图像和按钮单击之间,我没有做任何其他事情。 为了解决这个问题,我尝试添加 camera.up.set(xyz), camera.normalizedUp() 但没有解决问题。

有什么建议吗?提前致谢。

【问题讨论】:

    标签: mobile libgdx perspectivecamera


    【解决方案1】:

    先尝试设置位置,然后调用lookat()

    【讨论】:

    • 已经尝试过这个序列,但没有效果......还是谢谢
    【解决方案2】:

    您正在将相同的相机位置矢量对象设置为模型实例位置矢量对象,因此当相机移动时,模型实例也会这样做。只需为每个模型实例创建一个新向量,将其位置设置为相机位置myModelPos.set(camera.pos),一切都应该没问题。

    我发了example of basic mario 64 movement on this guthub,希望对你有帮助。

    【讨论】:

    • 我找到了根本原因。无论如何,感谢您的 mario 64 示例。
    • 您能分享解决方案并接受它作为正确答案吗?更多人可能有同样的问题。
    • 请在下面找到我的解决方案,我已经接受了。干杯!
    【解决方案3】:

    我发现不是 ModelInstances 移动了。它是由 resize() 移动的相机。在 resize() 方法下,我编写了 viewport.update(width, height, true) 代码,它将相机在视口内居中,因此相机在没有我注意的情况下移动。此外,天空盒的编码方式是它会随着相机移动,并使其看起来像相机没有移动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2014-03-01
      相关资源
      最近更新 更多