编辑“︁
Marauroa Core API
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== RPClass == 此类是Arianne的关键概念。 RPClass非常类似于Java类,但是对于Arianne RPObjects来说:RPClass定义了组成对象(对象是属性的集合,例如对于人类而言,年龄、身高等属性)的属性的类型(字符串、整数、布尔值...)和可见性(隐藏,私有或可见)。 RPClass 由5个不同部分组成: 数据类型定义: * ''String'': 字符串,最多 2^32 字节 * ''Short String'': 字符串,最多 255 字节 * ''Integer'': 32 位整数 * ''Short'': 16 位整数 * ''Byte'': 8 位整数 * ''Flag'': 二进制标志. 数据的可见性: * ''Visible'': 属性对客户端可见. * ''Hidden'': 属性对客户端不可见. * ''Private'': 该属性仅对与之关联的客户端可见(如客户端控制的玩家对象) RPClass的创建方法: (这些是每个RPClass实例的一部分,有关用法,请参见下面的示例) <source lang="java"> public void add(String name, byte type) public void add(String name, byte type, byte visibility) public void isA(String parent) public void isA(RPClass parent) </source> 这些方法将属性添加到RPClass并设置其类型和可见性。 您也可以设置此类的父类。 当然也可以没有父类. 填充完类后,您可以使用这些方法查询数据。 这些方法使您可以获取类的类名称,属性的类型,确定属性是否存在以及知道RPClass是否为另一个的子类. '''查询''': <source lang="java"> public String getName() public byte getType(String name) public byte getVisibility(String name) public boolean hasAttribute(String name) public boolean subclassOf(String parentclass) </source> 您可以使用以下方法查询系统类. 注意在运行时修改类 '''不是''' 一个好主意. 类定义在连接时发送到客户端,因此,如果您在游戏过程中更改类定义,则会使客户端崩溃! '''Class wide query''': <source lang="java"> boolean hasRPClass(String name) RPClass getRPClass(String name) </source> 当编写类定义时您可以跳过 ''id'' 和 ''type'' 属性,它们由 RPClass 自动定义. '''例子''':<br> <source lang="java"> // 一个带位置信息的实体 RPClass objclass = new RPClass("entity"); objclass.add("x", RPClass.BYTE); objclass.add("y", RPClass.BYTE); // 一个玩家实体 objclass = RPClass("player"); objclass.isA("entity"); objclass.add("name", RPClass.SHORT_STRING); objclass.add("direction", RPClass.SHORT_STRING); objclass.add("score", RPClass.INT); objclass.add("super", RPClass.BYTE); objclass.add("!vdir", RPClass.STRING,RPClass.HIDDEN); objclass.add("!hdir", RPClass.STRING,RPClass.HIDDEN); objclass.add("?kill", RPClass.FLAG); </source> 每次您创建一个新的RPClass时,只要您给它命名(例如:entity,player,...),它将被添加到系统的类列表中. 注意,在示例中,如果您希望RPClass具有此属性,则必须指定hidden属性,否则默认情况下,该属性可见. 注意:您可以选择在应用程序中不使用RPClass,但是这会增加网络带宽的使用率.
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息