猫史档案馆


诸位可曾听闻一阵,可镇天地

用户:2333280823332808查看:1 回复:9 评论:1 创建时间:2023-07-13T14:45:34


center_image

我肝了一天的代码

function RGB(r,g,b){
    return new Box3RGBColor(r/255,g/255,b/255)
}
class zhutian{
    constructor(postion,scale){
        this.stairs={"金":RGB(245,255,2),"木":RGB(49,196,81),"水":RGB(92,219,215),"火":RGB(255,0,0),"土":RGB(143,90,16),
        "本源":RGB(0,200,0),"雷":RGB(148,18,199),"阳":RGB(255,235,15),"光":RGB(255,255,255),"月":RGB(190,190,190),
        "暗":RGB(0,0,0),"冰":RGB(0,217,217),"生命":RGB(12,242,73),"血":RGB(200,20,20),"风":RGB(255,255,255),
        "灵魂":RGB(100,100,100),"轮回":RGB(0,46,184),"鸿蒙":RGB(238,0,255),"混沌":RGB(20,20,20),"星辰":RGB(26,51,125),}
        this.scale=scale
        this.position=postion
        for(this.i in this.stairs){
            this.e=world.createEntity({
                mesh:"mesh/星辰.vb",
                position:postion,
                meshScale:[0.1,0.1,0.1],
                meshColor:new Box3RGBAColor(this.stairs[this.i].r,this.stairs[this.i].g,this.stairs[this.i].b,1),
                meshEmissive:0.3,
                particleRate:50,
                particleLifetime:5,
                particleSize:5,
                particleLifetimeSpread:3,
                particleColor:this.stairs[this.i],
                gravity:false,
                collides:false
            })
            this.stairs[this.i]=this.e
        }
        this.setup()
    }
    setup(){
        this.circle(this.stairs["金"],this.stairs["本源"],1,0.01,Math.PI/2+0*2/5*Math.PI)
        this.circle(this.stairs["火"],this.stairs["本源"],1,0.01,Math.PI/2+1*2/5*Math.PI)
        this.circle(this.stairs["木"],this.stairs["本源"],1,0.01,Math.PI/2+2*2/5*Math.PI)
        this.circle(this.stairs["土"],this.stairs["本源"],1,0.01,Math.PI/2+3*2/5*Math.PI)
        this.circle(this.stairs["水"],this.stairs["本源"],1,0.01,Math.PI/2+4*2/5*Math.PI)
        this.elliptic(this.stairs["雷"],"火","水",0.35,0.15,0.065,0)
        this.sun(this.stairs["阳"])
        this.round_gra(this.stairs["光"],"阳","火",0.1,0.1,1)
        this.mirro(this.stairs["月"],"阳")
        this.circle(this.stairs["暗"],this.stairs["月"],0.05,0.1,2.5)
        this.round_gra(this.stairs["冰"],"水","暗",0.1,0.1,1)
        this.elliptic(this.stairs["生命"],"木","水",0.15,0.35,0.065,1)
        this.round_gra(this.stairs["血"],"暗","生命",0.1,0.1,1)
        this.circle(this.stairs["风"],this.stairs["本源"],1.05,0.05,4)
        this.center(this.stairs["灵魂"],"风","生命")
        this.center(this.stairs["轮回"],"灵魂","暗")
        this.circle(this.stairs["鸿蒙"],this.stairs["本源"],0.2,0.1,3.1)
        this.round_gra(this.stairs["混沌"],"本源","鸿蒙",1.1,0.07,2,3)
        this.elliptic(this.stairs["星辰"],"金","土",0.6,0.1,0.08,0)
    }
    circle(e,c,r,speed,start){
        e.angle=start
        world.onTick(()=>{
            e.position=c.position.add(new Box3Vector3(Math.sin(e.angle)*r*this.scale,0,Math.cos(e.angle)*r*this.scale))
            e.angle+=speed
        })
    }
    p(name){
        return this.stairs[name].position
    }
    vector_mul(vector,number){
        return new Box3Vector3(vector.x*number,vector.y*number,vector.z*number)
    }
    elliptic(e,head1,head2,long,short,speed,start){
        e.angle=start
        world.onTick(()=>{
            e.e_1=this.p(head1).sub(this.p(head2)).mag()
            e.e_2=e.e_1*short
            e.e_31=Math.sin(e.angle)*e.e_2
            e.e_32=Math.cos(e.angle)*e.e_1*long
            e.e_41=Math.atan2(this.p(head1).x-this.p(head2).x,this.p(head1).z-this.p(head2).z)
            e.e_42=Math.PI-e.e_41
            e.e_43=this.p(head1).add(this.vector_mul(this.p(head1).sub(this.p(head2)),-0.5)).add(new Box3Vector3(Math.sin(e.e_42)*e.e_32,0,Math.cos(e.e_42)*e.e_32))
            e.e_44=e.e_42-Math.PI/2
            e.position=e.e_43.add(new Box3Vector3(Math.sin(e.e_44)*e.e_31,0,Math.cos(e.e_44)*e.e_31))
            e.angle+=speed
        })
    }
    sun(e){
        world.onTick(()=>{
            e.s_51=this.p("雷").add(this.vector_mul(this.p("火").sub(this.p("雷")),0.5))
            e.s_52=(this.p("火").x-this.p("雷").x)/(this.p("雷").z-this.p("火").z)
            e.s_53=(-this.p("火").z*this.p("本源").z+this.p("火").x*this.p("本源").z)/(this.p("火").x-this.p("本源").x)
            e.s_54=(e.s_53-e.s_51.z+e.s_52*e.s_51.x)/(e.s_52-(this.p("火").z-this.p("本源").z)/(this.p("火").x-this.p("本源").x))
            e.position=this.p("本源").add(this.vector_mul(this.p("本源").sub(new Box3Vector3((e.s_54-e.s_53)/((this.p("火").z-this.p("本源").z)/(this.p("火").x-this.p("本源").x)),this.position.y,e.s_54)),3))
        })
    }
    round_gra(e,c1,c2,r,speed,start,power=1){
        e.angle=start
        world.onTick(()=>{
            e.r_8=this.p(c1).add(new Box3Vector3(Math.sin(e.angle)*r*this.scale,0,Math.cos(e.angle)*r*this.scale))
            e.position=e.r_8.add(this.vector_mul(this.p(c2).sub(e.r_8),(1-(e.r_8.sub(this.p(c2)).mag()/this.scale))*power))
            e.angle+=speed
        })
    }
    mirro(e,name){
         world.onTick(()=>{
            e.position=this.p("本源").add(this.p("本源").sub(this.p(name)))
        })
    }
    center(e,c1,c2){
        world.onTick(()=>{
            e.position=this.p(c1).add(this.vector_mul(this.p(c1).sub(this.p(c2)),-0.5))
        })
    }
}
zheng=new zhutian(new Box3Vector3(128,128,128),32)


回复

上一页1 页 / 共 1下一页
小屑鹿小屑鹿

👀

点赞1


评论


mkonnzikmkonnzik

center_image

点赞1


评论


Star_Ink_sansStar_Ink_sans

ddd?

点赞0


评论


busterbuster

大圈里面可以做得再整齐点)不过已经很好康了))

点赞0


评论


Dreamland_AuroraDreamland_Aurora

哇,666啊()我就笑纳了()

点赞0


评论


鸽王懒狗鸽王懒狗

牛的awa

点赞0


评论


岛三的赜黎岛三的赜黎

!!!заебись!!!

emotion_编程猫_厉害了

点赞0


评论


ZNS_哪吒ZNS_哪吒

裤)

点赞0


评论


一勺小汤_纪念号一勺小汤_纪念号

泰裤辣!

点赞0


评论