猫史档案馆


【之音学编程】之实用教程:实体旋转

用户:梦里觅深海梦里觅深海查看:854 回复:40 评论:41 创建时间:2020-05-21T17:47:03


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

咳咳,自从墨水用我的代码发了他的墨教以后,我觉定,也写一些教程

这次真的是拿出看家本领了,来个炫酷滴:实体旋转!!!!!

顺便说一下,墨水的教程里的蓝之音就是我啦,我改名了

先康康8:

world.querySelectorAll('*').forEach((pl)=>{//遍历所有实体,并取名pl
    if (pl.isPlayer && pl.player.name==="MC_蓝之音"){//如果pl是玩家并且pl的玩家的名字是MC_蓝之音(这是我的曾用名)(这里的玩家代表需要围绕着旋转的实体)
        world.querySelectorAll('.旋转的实体').forEach((e)=>{//那么,就遍历带有旋转的实体标签的实体,并取名e
            var angle=0;//定义变量angle(角度的意思),设置为0,初始时为0°,更不更改没啥关系
            var radius=4;//设置围绕玩家旋转的半径就是圆半径,设置为4,可以更改
            world.onTick(()=>{//你懂的(不,我不懂)(不,你懂,是装的)   ...  好吧,其实就是每时刻就执行一遍。
                angle+=0.3;//每次执行时就让角度加上0.3,可以更改,越大速度越快
                var x = Math.sin(angle)*radius;//重点来啦,这里很难——这一行,定义变量x为旋转角度的对边值乘上圆半径4
                var z = Math.cos(angle)*radius;//定义变量z为角度的对边的非斜边邻边比斜边的值乘圆半径4
                e.position.x=pl.position.x+x;//实体x轴移动等于玩家x轴加变量x
                e.position.z=pl.position.z+z;//实体的z轴移动等于玩家z轴加变量z
                e.position.y=pl.position.y;//实体的y轴移动就是玩家的轴移动
            })//全知框架
        })//还有我哦
    }//看到Math.sin和Math.cos的时候就已经疯了
})//带上我吧
//最后说一句,sin和cos不懂没关系,毕竟是看家本领...

这里的知识点很多,不一一讲解,懂就懂,不懂也没关系,毕竟这是一个格式,套进去就行了。

最后,如果你想要让一个实体围绕着另一个非玩家的实体,也很简单,相信很多童鞋都会的,就是将isPlayer去掉并且把pl.player.name改成pl.id即可啦。

如果是自己旋转的话,那就将pl.position改成一个需要围绕的中心坐标即可

嘿嘿,学会了吗?

最后,向墨水学习:

 

残孤之音 技术

残孤之音 图文

残孤之音 bug

 

咳咳,以下跟本教程无关:

测试一下,你们别在意


回复

上一页第 1 页 / 共 2 页下一页
梦里觅深海梦里觅深海

我记得之前似乎墨水跟我说尹子(好像是他)写了一个旋转代码,八边形旋转,就会有一个问题,就是在画一个很大的圆时,就能看出不是一个正圆了。而且代码较长

点赞0


评论

额,感觉我脸皮好厚啊

不是伊子写的,是伊子不会,然后我看到一个叫人工智能AI的人的教程帖,里面说的是八边形

🆗

伊子是谁

是某个大佬

啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈

人家是尹子


梦里觅深海梦里觅深海

顶顶

点赞0


评论


高贵的木叶龙A35d高贵的木叶龙A35d

收藏

点赞0


评论


韵律源点Arcaea韵律源点Arcaea

nb

点赞0


评论


凌_墨水凌_墨水

顶顶

点赞0


评论

帮我写一个监狱代码吧


datacatdatacat

额,API里有诶

点赞0


评论

不一样的


datacatdatacat

直接用

meshOrientation不行吗

点赞0


评论

当然不行啦,一个是公转,一个是自转啊


梦里觅深海梦里觅深海

再顶一下

点赞0


评论


凌_墨水凌_墨水

啊啊啊,为什么非要绕一个东西旋转啊

点赞0


评论

也不一定要围绕一个东西旋转啊,只是这个代码就是围绕一个点旋转

https://box3create.codemao.cn/games/d7b8a7e3a78b4b88b7bb 帮帮忙吧


梦里觅深海梦里觅深海

顶顶

点赞0


评论


神兽喵神兽喵

喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

哼哼……

这个旋转好像不均匀?

点赞0


评论

走路的时候确实,因为比竟不是mesh=mesh,而且是每时刻执行一次,所以会有延迟是正常的,如果怕打到自己的话可以尝试扩大半径,速度减慢

OK

还有请教一下,为什么meshOrientation的旋转也是不均匀的?

如何用meshOrientation使实体旋转到指定角度?

额,你是编写了一直旋转还是运行程序后调整到一个合适的角度?

world.querySelectorAll(".f").forEach( (ee) => { ee.meshOrientation=new Box3Quaternion(0,89,76,24) })

就是遍历带有f标签的实体,取名ee,将其角度设置为Box3Quaternion(0,89,76,24)

其中第一个参数设置为0即可,其它3个参数代表了3个方向旋转的角度,取值为0-89

我对于旋转角度了解也不是很多


流浪月球流浪月球

https://box3create.codemao.cn/games/d7b8a7e3a78b4b88b7bb

帮帮忙

点赞0


评论

我瞧瞧

可以帮忙吗


wrmdcxywrmdcxy

顶顶顶顶顶

点赞1


评论


查理九世1查理九世1

nb

点赞0


评论


梦里觅深海梦里觅深海

我再顶

点赞0


评论


梦里觅深海梦里觅深海

我顶顶顶顶顶顶顶顶顶

点赞0


评论

帮我弄一个呗

https://box3.codemao.cn/e/dea3f822552115551a62


datacatdatacat

总体来说自传比公转好

点赞0


评论

额,它们是不一样的啊

不能直接说哪个比哪个好吧?


可靠的蓝甲虫sDuG可靠的蓝甲虫sDuG

world.querySelectorAll('*').forEach((pl)=>{
    if (pl.isPlayer && pl.player.name==="可靠的蓝甲虫sDuG"){
        world.querySelectorAll('.旋转的实体').forEach((e)=>{
            var angle=0;
            var radius=4;
            world.onTick(()=>{
                angle+=0.3;
                var x = Math.sin(angle)*radius;
                var z = Math.cos(angle)*radius;
                e.position.x=pl.position.x+x;
                e.position.z=pl.position.z+z;
                e.position.y=pl.position.y;
            })
        })
    }
})

是这样吗?

点赞0


评论

是的

....挖你自己的.....成何体统()(


TLOCKTLOCK

顶顶顶顶顶

点赞1


评论


梦里觅深海梦里觅深海

d'd

点赞0


评论


梦里觅深海梦里觅深海

d'd

点赞0


评论


面具狐狸云绾兮面具狐狸云绾兮

搞一个几个实体联动代码呗()

点赞1


评论


无尽深空无尽深空

这到底是玩家绕着实体赚钱还是实体让着玩家?

点赞0


评论


无尽深空无尽深空

复制了看看可怎么改,也没有看到实体绕着我旋转或者我绕着实体转

点赞0


评论


KaNSFKaNSF

nb

点赞0


评论


JYF_斗罗JYF_斗罗

挖~

点赞0


评论


神炎暗月神炎暗月

可以教教我怎么公转吗,只上下旋转,不影响别的,最好可以自定义度数imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E4%BC%A4%E5%BF%83.gif"alt="emotion_编程猫_伤心"

点赞0


评论


umbrallawwumbrallaww

谁挖的啊)

点赞0


评论


MrAssMrAss

挖坟

点赞0


评论