编辑“︁
RolePlayingDesign
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=Zones and Worlds= Marauroa 的世界可能非常大,我们需要把它们分成几块。 每一块都是我们所说的RPZone。 所以世界是由几个相互'''独立的''' 的RPZones 组成的。 要从一个RPZone移动到另一个RPZone,您必须在RPRuleProcessor中编写正确的行为。看看我们的代码示例就知道了。 ==RPWorld== 正如我们已经说过的,RPWorld存储了几个相互独立的RPZones。<br> RPWorld 提供了 onInit 和 onFinish 方法在服务器初始化和服务器结束时被调用,它们定义了如何处理这些事件。这其中不存在默认行为,你需要扩展这个类来重新定义行为。 它还提供了添加和获取新RPZones的方法: * addRPZone * getRPZone, 用于获取RPZone.ID或者RPObject.ID。 最后,它还包含管理RPObjects的方法: * addRPObject, 需要RPObject 在它的RPObject.ID中包含一个有效的RPZone.ID。 * getRPObject * modifyRPObject * changeZone 将一个对象从旧zone移动到新zone并添加正确的有效id。 最后,RPWorld还包含一个名为nextTurn的方法,RPManager调用该方法来从一个回合移动到下一个回合。 它重置了delta<sup>2</sup> 数据。 ==RPZone== 对象必须存储在某个地方,我们使用区域Zones来存储它们。 区域Zone只是一个具有名称的对象容器。 每个RPZone'''必须''' 有一个惟一的名称。 为了改善Marauroa平台的可修改性,我们使RPZone成为接口,以便您可以根据需要实现它. 但在大多数情况下, 如果你认为Delta<sup>2</sup> 系统很好并且贴合游戏风格,您可以使用MarauroaRPZone,它是我们Delta<sup>2</sup>算法的参考实现。 实际的Marauroa RPZone由几个数据结构组成: * a HashMap of RPObject.ID to RPObject * a List of RPObject * a Perception 想法是事先已经在区域中计算了感知,从而节省了通常生成感知所需的大量时间。 所有数据结构都包含相同的对象,但 hashmap 用于使用 RPObject.ID 快速搜索对象。 这是定位具有已知 ID 的对象的最常用方法。 列表用于改善建立总体感知所需的时间。 感知用于预先计算增量感知(即查找区域的当前状态与上一回合发送给客户端的先前状态之间的变化) 区域内所有玩家的感知都是相同的. 为了使perceptions工作, 您必须手动调用modify方法,以便将角色或物品的更改告诉zone 。 [[Category:Marauroa]] {{#breadcrumbs: [[Marauroa]] | [[Navigation for Marauroa Developers|Internals]] | [[RolePlayingDesign|Role Playing Design]] }}
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息