猫史档案馆


小鸡对战游戏

用户:淘气的超能鸭PMzT淘气的超能鸭PMzT查看:3 回复:2 评论:3 创建时间:2021-06-22T21:18:22


小鸡对战emotion_编程猫_厉害了代码

console.clear()



var DefaultScale = [0.0625,0.0625,0.0625];

var Quat = new Box3Quaternion(0,0,0,1);



var score = 0

function spawn(x,y,z,meshName){

    if(world.entityQuota()<=0){return}//如果可分配的实体小于等于0, 就不再创建新的模型



    var entity = world.createEntity({

        mesh:meshName,//模型名

        collides:true,//能碰撞

        fixed:false,//固定

        gravity:true,//受重力下落

        meshScale:DefaultScale,//模型放大倍数

        position:[x,y,z],//位置坐标

        friction:0.5,//摩擦力

    })



    entity.enableDamage = true //允许公鸡受伤



    entity.onVoxelContact(({x,y,z,voxel})=>{//当公鸡碰到地形方块



        //当公鸡落地后, 随机改变移动速度

        entity.velocity.y = 0.5 + Math.random()*0.5

        entity.velocity.x = (Math.random()-0.5)*0.5

        entity.velocity.z = (Math.random()-0.5)*0.5



        if(voxel===voxels.id('stone')){//如果公鸡碰到了石头方块, 什么也不发生
        
        


       }else if(voxel===voxels.id('lava02')){//如果公鸡碰到了岩浆

            entity.hurt(400)//公鸡扣40生命

        }else{

            voxels.setVoxel(x,y,z,'')//公鸡可以破坏其他类型的方块

        }

    })



    entity.onEntityContact(({other})=>{//当公鸡碰到另一个模型实体

        if(other.isPlayer){//如果另一个模型实体是玩家

            other.hurt(0.1)//这个玩家扣0生命

        }

    })



    var handler = world.onTick(()=>{//计时循环, 每秒更新16次公鸡的朝向

        entity.meshOrientation = Quat.rotateY(Math.atan2(entity.velocity.z,entity.velocity.x))//公鸡朝向自己的移动方向

    })



    entity.onDie(()=>{//当公鸡喵亡(enitity.hp<=0)

        entity.destroy()//删除公鸡实体

        score++;

        world.say('已经收拾了 '+score+' 只公鸡')

    })



    entity.onDestroy(()=>{//当公鸡实体被删除

        handler.cancel()//取消控制公鸡朝向的计时循环

    })



    return entity

}



for(var i=0;i<250;i++){//生成 100 只公鸡模型实体

    spawn(63,11+i,63,'mesh/公鸡.vb')

}



world.onPlayerJoin(({entity})=>{//当有新玩家进入游戏

    entity.enableDamage=true//允许玩家受伤



    entity.onVoxelSeparate(({x,y,z,voxel})=>{//玩家离开方块的时候

        // spawn(x+0.5,y+1.5,z+0.5,'mesh/公鸡.vb')//在离开的方块留下公鸡模型

        voxels.setVoxel(x,y+1,z,'lava02')//岩浆突出到地面

    })

})



world.onPlayerLeave(({entity})=>{//当有玩家离开游戏

    world.say('恭送 '+entity.player.name)//世界广播

})



world.onChat(({entity, message})=>{//当有玩家在输入框发送消息

    if(message==='1'){//如果那名玩家输入的是 1

        //让所有实体对你说欢迎

        var allEntities = world.querySelectorAll('*');

        for(var e of allEntities){

            if(e.isPlayer){continue}//如果实体是玩家, 就跳过

            e.say('欢迎 '+entity.player.name)

        }

    }else if(message==='2'){

        //让位置在(60,0,60)~(70,120,70)之间的实体对你说欢迎

        var foundEntities = world.searchBox(new Box3Bounds3(

            new Box3Vector3(60,0,60),

            new Box3Vector3(70,120,70),

        ))

        for(var e of foundEntities){

            if(e.isPlayer){continue}//如果实体是玩家, 就跳过

            e.say('hello '+entity.player.name)

        }

    }else if(message==='复活'){

        entity.hp = entity.maxHp

        entity.position.x = 10

        entity.position.y = 50

        entity.position.z = 10

    }

})



world.onPlayerJoin(({ entity }) => {
  entity.player.enable3DCursor = true;
})







 


回复

上一页1 页 / 共 1下一页
淘气的超能鸭PMzT淘气的超能鸭PMzT

https://box3.codemao.cn/e/35a2ece4fe1522059d53

点赞0


评论


async_functionasync_function

复制谁不会啊

点赞0


评论