猫史档案馆


【屑浮生的教程】如何让一个实体围绕玩家旋转?

用户:浮生awa浮生awa查看:562 回复:11 评论:10 创建时间:2022-01-28T18:48:51


——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

hello!这里是浮生的第一个教程,请大家多多关照()

今天的主题是:如何让一个实体围绕另一个实体旋转?

下面先讲两个知识点,

一、你得知道什么是

                                                                        world.querySelector   其实就是搜索一个满足条件的实体                                                      
world.querySelector('#出生点-1')
  比如这行代码,其实就是搜索名字为“出生点-1”的第一个实体。   二、 你还得知道     world. querySelectorAll   其实和刚刚的那个差不多, 但是 这个是搜索满足条件的所有实体,返回一个数组。     现在开始写代码!  
const e1 = world.querySelector('#旋转实体');
  搜索名字为“旋转实体”的实体, 然后赋值给e1 这样我们就获取到这个实体了  
world.onTick(async({tick})=>{
    const e2 = world.querySelectorAll('player')
})
  然后做一个onTick,意思是游戏的每一刻都执行 赋值所有玩家给e2
e2.forEach((e) =>{
    
})

 

接着写一个forEach,

意思是用e遍历数组,

对e2数组的每个玩家都执行里面的代码

        e1.position.y = e.position.y;
        e1.position.x = e.position.x + Math.cos(tick/5)*5
        e1.position.z = e.position.z + Math.sin(tick/5)*5

最后把这三行代码加上,

实现旋转的效果

下面会比较难,我讲解一下:

e1是旋转的实体

e是玩家,本来是e2,但是现在我们把它赋值到e了

position是坐标的意思

x=x坐标

y、z也是

第一行是把旋转实体的坐标改为玩家的坐标

也就是把旋转实体的y坐标瞬移到玩家的y坐标,

让他们处在同一高度

接着两行代码的意思

差不多就是在做一个圆

“tick”的意思是每一刻的计数,

每过一刻增加1

tick/5是圆的角度

这两段代码就是让玩家移到圆的tick/5的角度的点上

tick/的次数越多,旋转的速度越慢

具体的有点复杂,

可以参考迷失冷光的三角函数教程学习

链接:https://shequ.codemao.cn/community/411432

那么现在我们就写完了,

完整代码:

const e1 = world.querySelector('#旋转实体');
world.onTick(async({tick})=>{
    const e2 = world.querySelectorAll('player')
    e2.forEach((e) =>{
        e1.position.y = e.position.y;
        e1.position.x = e.position.x + Math.cos(tick/5)*5
        e1.position.z = e.position.z + Math.sin(tick/5)*5
    })
})

记得把第一行的模型名字改为你的实体的名字!

 

这期教程就到这里了!我们下期再见!


回复

上一页第 1 页 / 共 1 页下一页
浮生awa浮生awa

排版居然被吞了一部分!喵

点赞0


评论


浮生awa浮生awa

ddddddddddddddd

点赞0


评论


额额额

点赞0


评论


编码喵编码喵

呃呃呃

点赞0


评论

??

最近编码喵在论坛好活跃啊

无聊

有多无聊)

有多无聊)


浮生awa浮生awa

顶上来

点赞0


评论


马云编程猫马云编程猫

收藏夹里见!

点赞1


评论


传奇无敌传奇无敌

这不冷光的吗(

点赞0


评论

是啊我偷的()()()


小屑鹿小屑鹿

咕咕~

点赞0


评论


浮生awa浮生awa

黑历史。。。

点赞0


评论


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

ddd

点赞0


评论


精神I病院广东省分院院长精神I病院广东省分院院长

那离被绕着的实体距离应该加到哪

点赞0


评论

Math.cos(tick * 旋转速度) * 旋转半径

哦哦哦 3Q

radius我瞎了

浮生看QQ((