用户:
爱探险的可乐呀查看:0 回复:5 评论:0 创建时间:2020-10-04T14:23:58
Hi~ o(* ̄▽ ̄*)ブ大家好啊
我是可乐
虽然我也不是个代码大佬,在社区的知名度也不高
但是最近社区很流行代码岛3,好多有了权限的代码萌新都不会写代码![]()
所以我把我仅有的这一点代码知识分享给你们![]()
好了废话不多说,开始我们正式的教程
-----------------------------------------------------------------------------------------------------------------------------
1.什么是“事件”?
你可以理解为:当发生...的时候,触发代码...
你可能会问:那为啥不用if捏?
其实Box3已经给我们准备好了几个方法
这个事件实质上就是一个函数(里面应该会有if,这我们就不用管了
)
↓最常用的几个方法就是下面几个↓
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
//要执行的代码
})//万能框架
你学会了吗?

更多代码请查看《开发API》:
好了这期就到这里
我是第一次发教程的可乐
我们下期见
拜拜~
爱探险的可乐呀示例代码被屏蔽词搞坏了
正确的代码好像是(我也记不清原文是啥了):
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
评论