与libgdx / Box2D的Sidescroller游戏与移动楼层而不是移动玩家

时间:2014-05-06 21:33:14

标签: java libgdx box2d

我想用libgdx和Box2D写一个sidescroller游戏。

但是不是将玩家和相机向右移动,玩家应该保持在他的位置,地板应该向左移动。板条箱应随机放置,并从屏幕的右侧移动到左侧。此外,玩家还应该可以移动到屏幕的左侧和右侧,而不会停止游戏以滚动关卡。

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

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

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

  • 移动地板,玩家和板条箱的位置,但这会破坏整个物理场景。

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

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

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

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

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