我将要开始开发一款侧向滚动游戏,该游戏的目标是在着陆之前在水平轴上尽可能移动。请注意,我不需要再沿水平轴返回。
我正在使用使用OpenGL和Box2d的Android版AndEngine进行开发。
在开始之前,我需要确定一些重要的事情:我应该使用玩家周围的世界来模拟运动还是实际移动玩家并跟随他使用游戏引擎的摄像头功能?
两种方法似乎都有不同的长处和后备,所以我不知道哪种方法最好。例如,什么将使在途中增加电源并具有良好的动画背景变得更容易?
谢谢!
我将要开始开发一款侧向滚动游戏,该游戏的目标是在着陆之前在水平轴上尽可能移动。请注意,我不需要再沿水平轴返回。
我正在使用使用OpenGL和Box2d的Android版AndEngine进行开发。
在开始之前,我需要确定一些重要的事情:我应该使用玩家周围的世界来模拟运动还是实际移动玩家并跟随他使用游戏引擎的摄像头功能?
两种方法似乎都有不同的长处和后备,所以我不知道哪种方法最好。例如,什么将使在途中增加电源并具有良好的动画背景变得更容易?
谢谢!
Answers:
移动相机(连接到播放器)。我可以想象您的世界有多个物体,例如敌人。如果要移动世界,则每次世界移动时都必须遍历所有这些对象以更新其位置。
如果移动播放器,然后将相机连接到播放器,则资源使用最少。游戏将进入渲染阶段,像遍历每一帧一样循环遍历所有内容,然后将其绘制在位置-camera.position。在这种情况下,摄影机位置将始终等于您的玩家位置。
camera.setChaseEntity(player);
来实现这一目标。
我总是移动相机并推荐它-有很多原因使我更喜欢此相机,但最重要的原因可能归结为:
如果您移动摄像机和播放器,则只需更新两个实体即可滚动屏幕。
如果您需要在屏幕上滚动时移动整个世界,则其中包含未知的实体,并且可能有大量的实体需要更新。
其他答案也不错,但是我想补充一点更好的方法,希望对尝试为另一个项目做出相同决定的人有所帮助。
移动播放器:
player.x += 5;
(伪代码)。感动世界:
0
。0
。归根结底,这取决于项目。如果有人在制作原始的Mario副本,移动世界可能会很复杂,而移动玩家并不会真正造成很多问题。但是,要制作一个大型的开放世界游戏,最好改为移动世界。