目录
介绍
做一款跑酷游戏,是很多学习编程的人一直都拥有的愿望,包括我在内,毕竟跑酷游戏本来就是一款最基础的游戏,代码师必学。
好了,废话不多说,开始。
用模型作为存档点
准备
现在地图中准备3个出身点,两个岩浆地。
岩浆名为”lava02” 换成其他的方块也是可以的,或者换成模型也还是可以的。
存档模型的名字如下
存档点-1 存档点-2 存档点-3
但是,当你换成模型之后,代码就不一样了。
代码
地图准备完毕,开始构建代码吧
先是查找所有存档模型
for (const e of world.querySelectorAll("*")){ //查找所有模型
if (e.id.startsWith("存档点")){ //添加符合条件判断
e.collides = true; //开启碰撞
e.fixed = true; //定住,防止玩家碰到模型之后将模型推开
e.onEntityContact(async({other})=>{ //检测但玩家碰到此模型之后就存档
if (e.position !== other.position.spawnPoint){
other.player.directMessage("存档成功") //给玩家发送提示
other.player.spawnPoint = e.position //修改玩家的出身点
}
})
}
}
现在找到所有模型之后,就要进行玩家的死亡碰撞判断了。
world.onVoxelContact(({entity,voxel})=>{
const voxelName = voxels.name(voxel) //将玩家碰到方块赋值给常量voxelName
if (voxelName == "lava02"){ //检测玩家碰到的模型是否为lava02
entity.position.copy(entity.player.spawnPoint) //将玩家移到存档点
}
})
好了,现在所有代码都写完了,现在看一下所有代码
for (const e of world.querySelectorAll("*")){ //查找所有模型
if (e.id.startsWith("存档点")){ //添加符合条件判断
e.collides = true; //开启碰撞
e.fixed = true; //定住,防止玩家碰到模型之后将模型推开
e.onEntityContact(async({other})=>{ //检测但玩家碰到此模型之后就存档
if (e.position !== other.position.spawnPoint){
other.player.directMessage("存档成功") //给玩家发送提示
entity.player.spawnPoint = e.position //修改玩家的出身点
}
})
}
}
world.onVoxelContact(({entity,voxel})=>{
const voxelName = voxels.name(voxel) //将玩家碰到方块赋值给常量voxelName
if (voxelName == "lava02"){ //检测玩家碰到的模型是否为lava02
entity.position.copy(entity.player.spawnPoint) //将玩家移到存档点
}
})
思路
接下来给大家讲解一下思路
此时有人就会有疑问,为什么我要将他存在entity.player.spawnPoint()的常量中呢?难道我就不能自己创建一个变量来存储吗?
其实原因很简单,var spawnPoint变量是全局的,是面向所有玩家的
用方块作为存档点
准备
伤害方块:lava02 存档方块:stone_wall
代码
world.onVoxelContact(({entity,voxel})=>{
const voxelName = voxels.name(voxel)
if(voxelName == "lava02"){ //判断碰到岩浆(碰到名为lava02)
entity.position.copy(entity.position.spawnPoint)//强制玩家重生 如果为真
}
else if (voxelName == "stone_wall"){
entity.position.spawnPoint = new Box3Vector3(entity.position.x,entity.position.y,entity.position.z)//将玩家的出身点设置为我们碰到名为“stone_wall”这个方块时的位置
}
})
这么样,是不是非常简单?
思路
最后总结
创建带有entity类的属性的变量,是只面向单个玩家的,而不会面向多个玩家,而没有带有entity类的属性的变量,是面向所有玩家的,所有玩家都会操控这个变量,也就是说一个创建了一个给玩家的私有变量,里面的值只有一个玩家可以拥有。
注意:伤害方块千万别选择液体,否则程序的效果是不会正常显示出来的!
好了,这节课就到这里了,我们下节课再见!
今天的文章神奇的代码_神奇代码中精彩镜头分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81545.html