处理较大背景上的玩家移动

Posted

技术标签:

【中文标题】处理较大背景上的玩家移动【英文标题】:Handling Player movement on larger Backgrounds 【发布时间】:2012-10-01 08:51:43 【问题描述】:

我正在构建一个 2D 游戏,其中玩家不断向上移动,当玩家达到可见的最大高度(例如 480)时,图层会向下移动。 但问题是当我在高度上添加更大的背景(例如 8192)时,我的 FPS 会下降。 我的问题是:

    我应该一次又一次地重复使用相同的背景还是应该寻找其他东西?

    我了解到 TileMaps 的驾驶室是一个非常大的图层,iPhone 可以轻松渲染。

    我应该使用视差滚动吗?

【问题讨论】:

【参考方案1】:

你应该把大背景剪成同样小的背景。

您很可能不需要平铺地图进行垂直滚动。只需将较小的背景添加到数组中,然后仅显示玩家可见的背景。

在示例中,我仅更新 BG1BG2BG3 部分。当BG1 离开屏幕时,我将其移除并在BG3 上方添加BG4BG5BG6 等也是如此。

您还可以通过对具有较小背景部分的数组进行排序来创建无限循环的背景。

视差滚动的使用取决于您的游戏艺术。视差效果是由两个或多个以不同速度滚动的背景层创建的。观看 some videos 以更好地理解它。

【讨论】:

以上是关于处理较大背景上的玩家移动的主要内容,如果未能解决你的问题,请参考以下文章

unity2D背景移动补偿从而获得3d错觉效果

基于Java的飞机大战游戏的设计与实现

背景图像未切换到移动设备上的备用图像

键盘上的Android打开,保持背景图像完整并向上移动内容[重复]

HTML5:移动设备上的 Div 背景大小随机错误

Spritekit:如何将玩家移动限制在某些瓷砖上