匿名
未登录
中文
讨论
贡献
创建账号
登录
Minecraft基岩版开发Wiki
搜索
致编者:请牢记我们的域名
wiki.mcbe-dev.net
!
致编者:欢迎加入本Wiki的官方交流
QQ群
或
Discord服务器
!
基岩版1.19.31
现已发布!(
了解更多
)
Inner Core
现已支持Xbox模组联机!(
了解更多
)
如果您是第一次来到本Wiki,欢迎
注册一个账户
点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
编辑“
模组API
”(章节)
来自Minecraft基岩版开发Wiki
命名空间
页面
讨论
更多
更多
语言
变体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
页面操作
阅读
编辑
历史
刷新
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==基本内容介绍== 模组API使用'''Python'''语言编写,其基本运行方式与原版的'''[[脚本引擎]](Script Engine)'''类似,都采用'''Client-Server'''(即'''客户端-服务端''')结构。[[服务端]]负责数据的管理与逻辑的计算,而[[客户端]]负责完成与用户的交互任务。举个通俗的例子,玩家在游戏里遇到一只僵尸,这只僵尸的外观、被攻击时的粒子效果由客户端渲染,而这只僵尸的内部属性(如位置,血量,速度等)和它的行为(如攻击玩家,在太阳下燃烧等)则由服务端控制,两者的分工负责非常明确,可用的事件和组件也有很大不同。而每个端的运行流程又大致为'''[监听事件-#响应事件-回调函数-执行逻辑(调用组件)#-销毁事件]'''(其中'''##'''部分为循环部分),其中内置事件和组件皆为网易封装好的方法。 ===系统=== 系统是整个模组API的核心基础,所有操作都必须基于系统之上进行。 {{Q|系统System是我们的核心类,用于监听事件,使用组件,更新等。 获取自定义的System需要继承引擎的系统基类 ClientSystem/ServerSystem.|网易开发者文档}} 模组API中并不是所有的接口都经过API库执行,有部分底层操作方法如获取运行平台、所有事件相关操作、创建物品实体、创建粒子效果等等都使用System类自带的方法执行。 ===事件=== 事件,指在游戏内'''触发了某个操作或达到某一种条件时'''游戏向引擎发送的'''包含返回值'''的信息,如监测玩家升级的AddLevelEvent附带'''[玩家ID][增加的等级值][新等级]'''三个返回值。所有返回值皆可通过'''预先在回调函数中设置的参数'''读取。在模组API中,所有事件皆使用'''[https://mc.163.com/mcstudio/mc-dev/MCDocs/2-ModSDK%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91/02-Python%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91/99-ModAPI/2-%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%85%B3/2-%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%85%B3API.html#listenforevent ListenForEvent]方法监听''','''[https://mc.163.com/mcstudio/mc-dev/MCDocs/2-ModSDK%E6%A8%A1%E7%BB%84%E5%BC%80%E5%8F%91/02-Python%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91/99-ModAPI/2-%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%85%B3/2-%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%85%B3API.html#unlistenforevent UnListenForEvent]方法反监听'''。 在网易的脚本系统中,客户端和服务端实际上拥有很多触发时机相同的事件,但其中部分类型相同的事件对象又不同,开发者可根据自身需要选择相应的部分进行监听。 {{Q|事件依赖于'''系统''',事件需要'''系统'''才能监听触发,因此在使用事件之前需要先拥有自己的系统system。事件分为'''定义事件、监听事件、反监听、发布事件和响应事件。</br>''' '''''定义事件'''''</br> 定义事件分为'''引擎定义的事件和自定义事件'''。引擎定义的事件不需要定义可以直接使用。自定义函数DefineEvent(新版中此函数已废弃).</br> '''''监听事件'''''</br> 监听事件的含义是'''将回调函数注册到事件上''',当事件发生时主动调用该回调函数。监听函数ListenForEvent.</br> '''''反监听事件'''''</br> 监听完毕后'''需要自行反监听该事件(即销毁事件)'''在System的Destroy函数中。反监听函数UnListenForEvent.</br> '''''发布事件'''''</br> 发布事件是指,在事件发生时发布这个事件通知所有监听了这个事件的回调函数。引擎定义的事件会在引擎事件发生时自动发布,自定义事件的发布需要先DefineEvent后才能发布(已废弃,新版可以直接发布),需要先CreateEventData创建事件数据,发布函数有BroadcastEvent / NotifyToClient / BroadcastToAllClient / NotifyToServer.</br> '''''响应事件'''''</br> 上述的发布事件很多都是广播,但是不是每条消息都需要每个system都处理,因此响应函数'''只会响应那些监听了这些事件'''且'''消息源有发布这些事件'''的时候才会响应。</br> 响应函数会响应在监听事件时ListenForEvent的参数中的回调函数。回调函数会'''传入参数dict''',不同事件的参数在下面具体事件(见[http://mc.163.com/dev/mcmanual/mc-dev/mcdocs/0-%E6%A6%82%E8%BF%B0/0-%E6%A6%82%E8%BF%B0.html 网易开发者文档])中进行了说明,其中'''部分参数是可设置参数''',可以通过修改值来改变事件的结果。|网易开发者文档}} ===接口=== 接口(原称组件),是一些已经封装好的[[wzh:方法_(電腦科學)|方法]],开发者可以更好对其进行调用以达到直接或间接修改游戏(核心玩法)逻辑的目的。 {{Q|组件是为了完成'''某个或某些特定逻辑功能'''的数据集合,组件'''只会保存数据'''并不会执行相应的逻辑,只有组件在System中更新的时候,System从判断组件是否需要更新,从组件中拿到需要更新的数据来执行相应的逻辑功能。 组件分为引擎组件和自定义组件。引擎组件的参数类型和功能都是确定好的,玩家可以创建Create或获取Get组件来完成逻辑功能。自定义组件需要自定义组件的数据结构,自定义组件的更新逻辑。|网易开发者文档}} 组件和事件一样,都依赖System类运行。同时组件在很大程度上也必须依赖事件所传入的返回值进行注册和绑定。
摘要:
请注意您对Minecraft基岩版开发Wiki的所有贡献都被认为是在知识共享署名-非商业性使用-相同方式共享下发布,请查看在
Minecraft基岩版开发Wiki:版权
的细节。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。
请勿私自提交受版权保护的材料!
您也可以将取自Mojang(及其网站、说明、指南、艺术概念、渲染图、出版物、第三方网站组件,以及其他此类Mojang已对外公开的受保护材料)的内容上传至Minecraft基岩版开发Wiki。所有权力、署名与利益在合适时仍归属Mojang,也不依照许可被授权。
取消
编辑帮助
(在新窗口中打开)
我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。
更多信息
确定
导航
导航
首页
最近更改
随机页面
社区门户
新闻动态
计划
沙盒
关于
导航
开发
附加包
模组SDK
ModPE Installer
BlockLauncher
Inner Core
ModdedPE
基岩版专用服务器
ElementZero
Cloudburst Nukkit
合作伙伴
Mineprogramming Wiki
bedrock.dev
友情链接
中文 Minecraft Wiki
我的世界中文论坛
MCDevs Wiki
Inner Core 中文社区
wiki工具
wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志
其他项目
变体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體