【神奇代码岛】玩家碰撞(非常完美的碰撞)

开头引入

一款好的游戏需要一些玩家碰撞之后产生一些交互,如果一直使用模型对话产生交互的话,这就太麻烦了,于是,我告诉大家一个新型交互,这就是碰撞

上课

正文

在碰撞交互里面有两种交互方式,1.方块交互;2.模型交互

方块交互(代码模板)


world.onVoxelContact(({entity,voxel,x,y,z,force,axis,tick})=>{}) //开始碰撞会调用的函数
world.onVoxelSeparate(({entity,voxel,x,y,z,force,axis,tick})=>{})//结束碰撞会调用的函数

准备阶段

先在地上放一个名为“stone”的方块

上代码

普通碰撞代码

world.onVoxelContact(({entity,voxel})=>{
    const voxelName = voxels.name(voxel) //将方块赋值给常量voxelName,以方便我们调用或者指定玩家碰到的方块
    if (voxelName === "stone"){ //判断实体踩到的方块是否为stone
        entity.player.directMessage("你踩到了一个名为“stone”的方块") // 如果踩到了会触发的交互
    }
})
检测脚下的碰撞代码

world.onVoxelContact(({entity,voxel,axis})=>{
    const voxelName = voxels.name(voxel) //将方块赋值给常量voxelName,以方便我们调用或者指定玩家碰到的方块
    if (voxelName === "stone" && axis === 1){ //判断实体踩到的方块是否为stone
        entity.player.directMessage("你踩到了一个名为“stone”的方块") // 如果踩到了会触发的交互
    }
})

参数查看

开始碰撞
结束碰撞

实体交互(代码模板)


world.onEntityContact(({entity,other,force,axis,tick})=>{})
world.onEntitySeparate(({entity,other,force,axis,tick})=>{})

准备阶段

上代码


world.onEntityContact(({entity,other})=>{//entity一般指玩家碰到的实体,other一般指玩家
    if (entity.id == "bb"){ //指定碰撞的模型
        other.player.directMessage("蔡徐坤好帅")
    }
})

参数查看

开始碰撞
结束碰撞

结语

这节课就到这里了,下课

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值