用户:
async_function查看:5 回复:3 评论:5 创建时间:2020-10-04T15:28:45
太久没更了。。。继续讲:
上次说了变量和列表,这次来说万能框架
万能框架的结构一般是这样的:
......({
})
其中六个省略号就是要触发的事件。万能框架由几种类型,第一种,最复杂的(我把他叫做监听框架):
world.onPlayerJoin(async({entity})=>{//监听玩家进入事件
//代码
})
第二种(我把它叫做参数框架):
entity.player.dialog({
title:'aaa',
type:'aaaaaa',
})//这种框架一般运用在第一种框架中(见下)
world.onPlayerJoin(({entity})=>{//框架一
entity.player.dialog({//框架二
title:'aaa',
type:'aaaaaa',
})
})
第三种(我把它叫做async对象框架):
(async()=>{
//代码
})()
这种万能框架可输出在控制台使用(不过要确保代码是对的)
先讲第一种:第一种的第一个单词是world,用于监听各种事件
第二个单词是要监听的事件,如,onPlayerJoin监听玩家进入,onPlayerLeave监听玩家离开(APL文档速查表里有)https://docs.box3.codemao.cn/2api-toc.html
第一个括号里的async是可选参数,用于指定此代码是同步还是异步(加了是异步,不加是同步)
world.onChat(async({message,entity})=>{
//监听聊天事件,此代码是异步(不稳定,可以等待)
await sleep(1000)//没问题,不会报错
})
world.onChat(async({message,entity})=>{
//监听聊天事件,此代码是同步(稳定,不可以等待)
await sleep(1000)//有问题,会报错
})
第二个括号以及大括号里的是参数列表,不同的事件有不同的参数,APL里也有
最后万能框架里的就是要执行的代码了。举个例子:
world.onChat(async({message,entity})=>{
if(message==='简介'){//这里运用了if语句,以后会说
world.say('aaaaaaa')//世界广播
await sleep(500)//等待0.5秒
world.say('aaaaaaa')
}
})
//此段代码可以让玩家输入'简介'后得到地图的简介
-----------------------------------------------------------------------------------------------------------------------------
第二种,一般使用Object或entity的子参数中,这种比较简单,当玩家进入时弹出一个对话框:
world.onPlayerJoin(({entity})=>{
entity.player.dialog({
参数一:参数值一,//多个参数一定要用英文逗号","隔开
参数二:参数值二,
... : ...,
参数n:参数值n,
})
})
参数APL里还是有。(突然感觉APL...)
举个例子:
world.onChat(({entity,message})=>{
entity.player.dialog({
title:'a'
type:`你说了${message}`//玩家说什么,就弹出内容是他说的话的对话框
})
})
-----------------------------------------------------------------------------------------------------------------------------
第三种,可以在编辑模式下干某事的万能框架(async万能框架)
这种框架可以在没运行的时候干某些事。如:
(async()=>{
voxels.setVoxel(20,20,20,'H')
})()
//将此代码输入到控制台中,可以在位置20,20,20增加一个方块H
如果有'喵'告诉我