【问题标题】:How to program an RPG game's scripted event/Cut scene system in a tile based RPG in objective C?如何在目标 C 中基于图块的 RPG 中编写 RPG 游戏脚本事件/过场动画系统?
【发布时间】:2011-03-15 17:43:54
【问题描述】:

作为背景,我一直在根据 Ray Wenderlich 的教程制作 RPG。 (示例)http://www.raywenderlich.com/1163/how-to-make-a-tile-based-game-with-cocos2d。

现在我正在尝试构建一个脚本事件/过场动画系统,以便例如当玩家进入建筑物时,不同的角色可以在继续冒险之前讨论当前事件。我唯一的问题是我无法真正想象如何实现这一点。

我猜想某种一次性使用触发器,可能保存在某处单例的大型 switch 语句中?哪个可能会绘制所有临时字符?然后该事件将自行停用。

我只是在寻找如何做到这一点的蓝图。尽管也欢迎编程示例。

【问题讨论】:

  • 不应该在 [gamedev](gamedev.stackexchange.com) 中问这个问题吗?
  • 这个问题已经回答了,但仍然没有洞察力——如何实现过场动画?

标签: objective-c cocos2d-iphone


【解决方案1】:

这在很大程度上取决于您希望投入多少时间来构建系统,以及您希望最终系统具有多大的通用性。一个强大的过场动画系统可以足够灵活地用于典型 2d RPG 中的几乎所有交互。

如果您想全力以赴,我建议您采用大量数据驱动的方法。在文件中保留尽可能多的数据并使用文件系统对您有利。如果您说“所有对话场景都在此文件夹中”,那么在添加新场景时只需将其放入文件夹中,而不是创建场景然后在某处触摸一些主 switch 语句。请记住,对于大型系统,您希望尽可能简单地添加新的过场动画,而不是 400 个不同的地方。

我也会远离用于跟踪过场动画进度的 switch 语句。它为每个场景增加了很多代码开销。一个过场动画将是一个简单的数据数组和一个位置。您的过场动画管理器,单例,可以解析数组,将数据解码为命令并触发它们。

很抱歉,如果这是一个很大的模糊,但其中很多决定取决于您的引擎的结构以及您希望从系统中得到什么。请记住,系统越通用,您可能会发现它的用途越多,但开始运行需要更长的时间。

【讨论】:

    【解决方案2】:

    您可以在移动时检查您所在的图块,当您在特定图块上时,您可以开始过场动画,也可以通过 TiledEditor 添加标签(这是与 CCTMXTiledMap 一起使用的推荐编辑器) 到您的地图以指定过场动画的开始位置,就像他在该教程中指出角色起点一样。您在每个游戏周期中检查指定的触发器(特定的图块或地图中标记的点)。然后几乎很容易,您只需冻结控件并播放预先录制的摄像机和对象移动,直到过场动画结束。将游戏恢复到正常模式并关闭触发器检查。

    【讨论】:

      猜你喜欢
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      相关资源
      最近更新 更多