用户:
1086DRRalsei查看:4 回复:4 评论:4 创建时间:2020-12-19T11:47:36
代码部分:
先给大家道个歉,上周因学业繁忙...
吃瓜群众:别唠叨了
现在开始代码部分:课题是:怎么让玩家碰到的方块破裂?
问我们来认识一个命令:当碰到方块时
//格式:
world.onVoxelContact(({entity,voxel}) => {//这个voxel模块很重要的,不要弄掉!
//触发的代码
});
刚刚为什么说不能去掉voxel返回值,是因为一会儿要用
//碰到grass(喵方块)
world.onVoxelContact(({entity,voxel,x,y,z}) => {//当玩家接触到方块 tips:因为要玩家位置的方块破裂所以要玩家的xyz坐标
if (voxel === voxels.id('grass')){
voxels.setVoxel(x,y,z,0) //0代表空气/破坏
}
});
有人可能注意到了为什么是if (voxel === voxels.id('grass'))
是因为voxel返回的是触碰方块的id ,所以用voxels.id('grass')获取grass方块的id
注意!要区分voxel返回值和voxel模块!!!
课后作业:
怎么碰到岩浆(统一lava02)扣血?
结合上一课内容提交在评论区。
上期内容打开我的主页就能看到了
喵战代码下星期讲~
再见~~~~


化石茄子的铁镐world.onVoxelContact(({entity,voxel}) => {
if (voxel === voxels.id('lava02')){
entity.hurt(entity.hp)
}
}点赞0
评论
该账号已被封禁所以我认为这种的根本没必要讲....
首先onVoxelContact在地图中运用率基本没超过10%
然后onVoxelContact这种应该属于监听事件要少整吧...还要voxel完全可以使用voxels.getVoxel(x,y,z)
你代码里分号写的是中文..
直接用voxels.setVoxel(x,y,z)也是没问题的....
第四个参数好像就是可以不填...
点赞1
评论