猫史档案馆


box3第三个教程贴

用户:async_functionasync_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

如果有'喵'告诉我


回复

上一页1 页 / 共 1下一页
老葵老葵

抢沙发

 

点赞0


评论


指令者指令者

超大地图的BUG解决方法说一下

点赞0


评论


高贵的木叶龙A35d高贵的木叶龙A35d

列表是哪个贴啊

点赞0


评论