猫史档案馆


【Box3代码教程(一)】事件

用户:爱探险的可乐呀爱探险的可乐呀查看:0 回复:5 评论:0 创建时间:2020-10-04T14:23:58


Hi~ o(* ̄▽ ̄*)ブ大家好啊

我是可乐

虽然我也不是个代码大佬,在社区的知名度也不高

但是最近社区很流行代码岛3,好多有了权限的代码萌新都不会写代码emotion_泪

所以我把我仅有的这一点代码知识分享给你们emotion_嘻嘻

好了废话不多说,开始我们正式的教程

-----------------------------------------------------------------------------------------------------------------------------

1.什么是“事件”?

你可以理解为:当发生...的时候,触发代码...

你可能会问:那为啥不用if捏?

其实Box3已经给我们准备好了几个方法

这个事件实质上就是一个函数(里面应该会有if,这我们就不用管了emotion_挤眼

↓最常用的几个方法就是下面几个↓

world.onPlayerJoin(({ entity }) => {//当玩家进入时
    //要执行的代码
})//万能框架

这里的entity是什么意思呢?

可以理解为这个函数里的变量

示例代码:

world.onPlayerJoin(({ entity }) => {//当玩家进入时
    entity.position.set(3, 8, 125);//将实体移动到x:3,y:8,z:125的位置
    entity.player.spawnPoint.copy(entity.position);//喵家的复活点复制为实喵置(x:3,y:8,z:125,刚刚移动过)
    world.say(`欢迎 ${entity.player.name} !`);//这里为啥要用反引号呢,因为在js中,反引号里可以用${code}插入代码
})//万能框架

另外还有其他几个常用的事件:

world.onPlayerLeave(({ entity }) => {//当玩家离开地图时
    //要执行的代码
})//万能框架

world.onTick(({ entity }) => {//当游戏更新(开始一个tick)时,1tick=喵ms
    //要执行的代码
})//万能框架

world.onChat(({ entity, message }) => {//当玩家聊天(说话)时
    //要执行的代码
})//万能框架

world.onClick(({ entity }) => {//当玩家点击任何实体时
    //要执行的代码
})//万能框架

world.onPress(({ entity }) => {//当玩家按下任意按钮时
    //要执行的代码
})//万能框架

world.onRelease(({ entity }) => {//当玩家松开任意按钮时
    //要执行的代码
})//万能框架

world.onDie(({ entity }) => {//当实体喵亡时
    //要执行的代码
})//万能框架

world.onEntityContact(({ entity, other }) => {//当一个实体碰撞到另一个实体时
    //要执行的代码
})//万能框架

world.onVoxelContact(({ entity, voxel }) => {//当实体碰到方块时
    //要执行的代码
})//万能框架

注释已经写得很详细了~

另外,事件前面不一定是world哦

像这段代码:

world.onPlayerJoin(({ entity }) => {//当玩家进入时
    entity.onVoxelContact(({ x, y, z }) => {//如果玩家碰到了方块(注意,用的是entity.onVoxelContact)
        voxels.setVoxel(x, y, z, 0);//将玩家碰到的方块变成空气
    })//万能框架
})//别忘了我

注:相同事件的函数变量不一定相同哦,比如我上一段world事件里的onVoxelContact的函数变量有两个

entity(实体), voxel(碰到的方块类型)

而这个onVoxelContact呢,有三个

x(碰到方块的x坐标), y(碰到方块的y坐标), z(碰到方块的z坐标)

这说明:事件里的函数变量用哪个,写哪个

如果我哪个都用不着呢?

就可以这样写:

world.onTick(() => {//当游戏更新(开始一个tick)时,1tick=喵ms
    //要执行的代码
})//万能框架

你学会了吗?

emotion_编程猫_加油

更多代码请查看《开发API》:

https://docs.box3.codemao.cn/

好了这期就到这里

我是第一次发教程的可乐

我们下期见

拜拜~


回复

上一页1 页 / 共 1下一页
开心地小电鼠开心地小电鼠

emotion_编程猫_加油

点赞0


评论


爱探险的可乐呀爱探险的可乐呀

示例代码被屏蔽词搞坏了emotion_吃惊

正确的代码好像是(我也记不清原文是啥了)

world.onPlayerJoin(({ entity }) => {//当玩家进入时
    entity.position.set(3, 8, 125);//将实体移动到x:3,y:8,z:125的位置
    entity.player.spawnPoint.copy(entity.position);//把 玩家的复活点复制为实体 位置(x:3,y:8,z:125,刚刚移动过)
    world.say(`欢迎 ${entity.player.name} !`);//这里为啥要用反引号呢,因为在js中,反引号里可以用${code}插 入代码
})//万能框架

点赞0


评论


阿尓法阿尓法

emotion_编程猫_加油

点赞0


评论


Blue_夜梦流星Blue_夜梦流星

emotion_编程猫_加油

点赞0


评论


穿过你的黑发的我的手穿过你的黑发的我的手

问题1:当按下空格键时加速怎么编写

问题2:当按下鼠标左键时左转怎么编写

问题3:当按下鼠标左键时右转怎么编写

 

点赞0


评论