您将如何存储 Dizzy-like 的游戏等级冒险游戏?您将如何指定可步行区域和图形?它是基于瓦片的、基于像素的还是可行走的表面可以用 vector 来描述?
最佳答案
非常古老的冒险游戏(如 80 年代的 Sierra 的任务)过去实际上维护整个屏幕的单独位图,代表 z 深度和 Material ,以确定您的角色可以去哪里和隐藏在哪里。他们会使用像素采样来检查他们的小 Sprite 会去哪里。
虽然当前的机器速度更快,但长边滚动级别使这种方法不切实际,恕我直言。您必须使用更稀疏的表示形式。
一种选择是将您的游戏“缩小”为不可见的方 block ,这样更容易表示。这样做的主要问题是它会限制您的设计(例如,很难做对角线平台),并且会使动画效果很差(例如,您的角色的脚实际上没有接触到平台)。恕我直言,此选项适用于类似塞尔达的冒险游戏,但不适用于 Action 游戏。
第二种选择是通过一些 vector 表示来表示游戏世界并实现一些碰撞检测。我个人会选择第二种解决方案,特别是如果您可以聪明地组织数据结构以最大限度地减少访问时间(例如,可以更快地访问靠近角色当前位置的世界元素子集)。
如果有可用的 2D 游戏引擎提供这种功能,我不会感到惊讶,因为肯定有 3D 引擎可以做到这一点。事实上,您可能会发现使用现有的 3D 游戏引擎并使用它来渲染 2D 会更容易。
关于c++ - 令人晕眩的游戏关卡表示(格式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827964/