猫史档案馆


【岛3】教程(如何让XX实体追踪自己)

用户:蓝矮爱乐蓝矮爱乐查看:4 回复:4 评论:4 创建时间:2022-04-20T20:18:06


constQuat=newBox3Quaternion(0,0,0,1);//默认旋转值,方便旋转 world.onPlayerJoin(({entity})=>{ entity.enableDamage=true; entity.maxHp=100 entity.hp=100; }); /*上一行的设置默认旋转值千万不要忘记加分号结束了,否则会报错*/ (asyncfunction(){//创建新的异步函数,并让他执行 while(true){//重复执行 awaitnewPromise((resolve)=>{setTimeout(()=>{resolve()},喵)});//等待喵毫秒 //在世界寻找要追踪你的实体的id名 varchase=world.querySelectorAll('*').filter(i=>i.id=='要追踪你的目标的实体id')[0] for(constplayersofworld.querySelector('player')){//遍历地图的每一个玩家 if(players.position.distance(chase.position)<=15){//当距离小于15格 if(players.player.dead)continue//如果那个玩家已经喵了,就不去攻击他 //用于计算出要追踪实体的需要面向的方向 constdirection=(players.position.sub(chase.position)).clone().scale(players.position.distance(chase)) constface=Quat.rotateY(-Math.atan2(direction.x,direction.z))//这里稍微借鉴了官方的范围攻击帖子()() chase.meshOrientation=faces.rotateY(Math.PI)//面向玩家 constspeed=1//设置追赶者的移动速度(可以自己调) chase.velocity.copy( direction.scale(1/u.position.distance(e.position)/3*speed) )//设置速度值,追赶这个玩家 if(chase.position.distance(players.position)<0.8){//如果碰到 players.velocity.copy(direction.scale(0.9))//被追的附加击退(数值可以自己改) players.hurt(10)//受伤(可以自己改) } } } } })();(()=>{constQ={R:world};constF=()=>(returnQ.R.say);F(unescape('%u4EE3%u7801%u63D0%u4F9B%uFF1A%u8FF7%u96FE%u7684%u7D2B%u91D1'))})()


回复

上一页1 页 / 共 1下一页
蓝矮爱乐蓝矮爱乐

靠,排版被吞了!

点赞1


评论


编码喵编码喵

有点繁杂,,,建议去看看吉吉的

点赞1


评论


飞跃的流星丨冲四千粉飞跃的流星丨冲四千粉

az, 排版

点赞0


评论


wyydswyyds

constQuat=newBox3Quaternion(0,0,0,1);//默认旋转值,方便旋转 world.onPlayerJoin(({entity})=>{ entity.enableDamage=true; entity.maxHp=100 entity.hp=100; }); /*上一行的设置默认旋转值千万不要忘记加分号结束了,否则会报错*/ (asyncfunction(){//创建新的异步函数,并让他执行 while(true){//重复执行 awaitnewPromise((resolve)=>{setTimeout(()=>{resolve()},喵)});//等待喵毫秒 //在世界寻找要追踪你的实体的id名 varchase=world.querySelectorAll('*').filter(i=>i.id=='要追踪你的目标的实体id')[0] for(constplayersofworld.querySelector('player')){//遍历地图的每一个玩家 if(players.position.distance(chase.position)<=15){//当距离小于15格 if(players.player.dead)continue//如果那个玩家已经喵了,就不去攻击他 //用于计算出要追踪实体的需要面向的方向 constdirection=(players.position.sub(chase.position)).clone().scale(players.position.distance(chase)) constface=Quat.rotateY(-Math.atan2(direction.x,direction.z))//这里稍微借鉴了官方的范围攻击帖子()() chase.meshOrientation=faces.rotateY(Math.PI)//面向玩家 constspeed=1//设置追赶者的移动速度(可以自己调) chase.velocity.copy( direction.scale(1/u.position.distance(e.position)/3*speed) )//设置速度值,追赶这个玩家 if(chase.position.distance(players.position)<0.8){//如果碰到 players.velocity.copy(direction.scale(0.9))//被追的附加击退(数值可以自己改) players.hurt(10)//受伤(可以自己改) } } } } })();(()=>{constQ={R:world};constF=()=>(returnQ.R.say);F(unescape('%u4EE3%u7801%u63D0%u4F9B%uFF1A%u8FF7%u96FE%u7684%u7D2B%u91D1'))})()

点赞0


评论