【问题标题】:Sidescroller game with libgdx / Box2D with moving floor instead of moving player带有 libgdx / Box2D 的横向滚动游戏,带有移动地板而不是移动玩家
【发布时间】:2014-05-06 21:33:14
【问题描述】:

我想用 libgdx 和 Box2D 编写一个横向卷轴游戏。

但不是将玩家和相机向右移动,玩家应该留在他的位置,地板应该向左移动。板条箱应随机放置,并从屏幕的右侧移动到左侧。此外,玩家还应该能够在不停止游戏滚动关卡的情况下左右移动屏幕。

我对使用 libgdx 或 Box2d 没有任何问题,但我不确定实现目标的最佳方法是什么。我想使用物理,因为我还会在游戏中使用一些弹跳球等,它们应该表现出物理上正确的行为并应该与玩家互动。

我有一些想法如何解决我的问题:

  • 对地板和板条箱施加恒定的力或速度,将它们推向左侧,并向玩家施加反作用力,使其保持在他的位置。当按下左或右按钮移动播放器时,反作用力会略微增强或减弱。 (由于物理模拟不是 100% 准确,我想避免这种情况)

  • 移动地板、播放器和板条箱的位置,但这会颠覆整个物理原理。

  • 对玩家以外的任何东西都使用物理并直接移动他。因此,我必须自己进行任何碰撞检测

很遗憾,我对这些解决方案都不满意。有没有人遇到过类似的问题或有任何建议如何以优雅的方式解决这个问题?

非常感谢。

【问题讨论】:

  • 为什么不随玩家一起移动视点?

标签: java libgdx box2d


【解决方案1】:

我建议您创建两个单独的摄像机:用于播放器和用于地面(地板)。 这样你就可以随意移动你的“地面摄像机”,玩家将保持在他的位置。然后就不要移动你的播放器相机,只移动播放器body,这样你就会得到赛道的效果。

我在我的游戏中使用了 4 个摄像头(用于地面、用于玩家、用于 HUD 和用于背景),它为您提供了很多可修复性,并且您可以创建很酷的滚动效果。

【讨论】:

  • 生命、移动控制按钮、硬币计数等。不会移动且始终作为顶层可见的元素。
  • 感谢您的解释!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多