猫史档案馆


濑户老夫

濑户老夫

Lv.1

开言纳荐,社稷之福。如此如此,敌军自破。

获赞:32收藏:10浏览:1225作品收藏:17
回复帖子评论
上一页1 页 / 共 1下一页

【岛3萌新代码教程!】从0开始手把手教你写代码 中回复

console.clear() varDefaultScale=[0.0625,0.0625,0.0625]; varQuat=newBox3Quaternion(0,0,0,1); varscore=0 functionspawn(x,y,z,meshName){ if(world.entityQuota()<=0){return}//如果可分配的实体小于等于0,就不再创建新的模型 varentity=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')){//如果公鸡碰到了石头方块,什么也不发生 }elseif(voxel===voxels.id('lava02')){//如果公鸡碰到了岩浆 entity.hurt(40)//公鸡扣40生命 }else{ voxels.setVoxel(x,y,z,'')//公鸡可以破坏其他类型的方块 } }) entity.onEntityContact(({other})=>{//当公鸡碰到另一个模型实体 if(other.isPlayer){//如果另一个模型实体是玩家 other.hurt(20)//这个玩家扣20生命 } }) varhandler=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()//取消控制公鸡朝向的计时循环 }) returnentity } for(vari=0;i<250;i++){//生成250只公鸡模型实体 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 //让所有实体对你说欢迎 varallEntities=world.querySelectorAll('*'); for(vareofallEntities){ if(e.isPlayer){continue}//如果实体是玩家,就跳过 e.say('欢迎'+entity.player.name) } }elseif(message==='2'){ //让位置在(60,0,60)~(70,120,70)之间的实体对你说欢迎 varfoundEntities=world.searchBox(newBox3Bounds3( newBox3Vector3(60,0,60), newBox3Vector3(70,120,70), )) for(vareoffoundEntities){ if(e.isPlayer){continue}//如果实体是玩家,就跳过 e.say('hello'+entity.player.name) } }elseif(message==='复活'){ entity.hp=entity.maxHp entity.position.x=10 entity.position.y=50 entity.position.z=10 } }) world.breakVoxelSound=world.placeVoxelSound=''

2021-10-18T20:00:54 点赞:0

创作劫招人( 中回复

我我我

是万圣吗?

2021-10-25T20:06:48 点赞:0

为什么社区最近老是这样? 中回复

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"

2021-10-26T17:31:00 点赞:0

倒计时三天,各位创作节加把劲! 中回复

for(consteofworld.querySelectorAll('*')){//遍历每个实体 e.enableDamage=true//允许这个实体受伤/喵/复活 e.collides=true//允许实体被碰撞 e.gravity=true//开启重力,这样实体才不会一碰就飘走 } //碰到僵尸受伤,碰到急救包恢复生命 world.onEntityContact(({entity,other})=>{//other是被触碰的实体 if(other.hasTag('僵尸')){//当被碰实体有僵尸标签 entity.hurt(20)//受伤 }elseif(other.hasTag('急救包')){//当被碰实体有急救包标签 entity.hp=entity.maxHp//恢复满血 other.destroy()//把急救包从地图删除,destroy()只能删除非玩家实体 } })

2021-10-29T18:40:10 点赞:0

【每日亿个岛3建图小技巧】点击建造或者摧毁方块,创意达人必备! 中回复

console.clear()
const mscale = 1 / 16
const Quat = new Box3Quaternion(0, 0, 0, 1)

function buddyFollow(entity, mesh, y) {
    const buddy = world.createEntity({
        mesh,
        position: entity.position,
        meshScale: [mscale, mscale, mscale],
        gravity: false, //不受重力影响
        fixed: false, //可推移
        collides: true, //可碰撞
        friction: 0, //无摩擦力
        mass: 0.01, //非常轻
    })

    const tgPos = entity.position//僚机的目标位置
    const budPos = buddy.position//僚机的当前位置
    const facing = entity.player.facingDirection//玩家的朝向
    const ratio = 0.3//追随的灵敏度, 最好设在0.5左右, 1.0表示立即移到玩家位置

    const dist = 2 //与玩家保持的距离
    const yOffset = y //y轴位移, 保持僚机在头顶或脚下

    const ticker = world.onTick(() => {

        //要让小精灵跟在玩家背后, 需要计算xz轴的位移: 玩家朝向的反方向
        const xOffset = -facing.x * dist
        const zOffset = -facing.z * dist

        //当前位置与目标位置在xyz轴的差距
        const xDiff = tgPos.x - budPos.x
        const yDiff = tgPos.y - budPos.y
        const zDiff = tgPos.z - budPos.z

        //计算xyz方向上 当前位置向目标位置靠拢的速度
        const 喵 = (xDiff + xOffset) * ratio
        const vy = (yDiff + yOffset) * ratio
        const vz = (zDiff + zOffset) * ratio

        buddy.velocity.set(喵, vy, vz)//设置僚机速度

        if (buddy.velocity.sqrMag() > 0.005) {//速度要足够大, 才触发转向, 防止抖动
            buddy.meshOrientation = Quat.rotateY(Math.atan2(zDiff, xDiff)) //让小精灵一直面向玩家
        }
    })

    return () => {
        ticker.cancel() //关掉tick循环
        buddy.destroy() //移除僚机实体
    }
}

world.onPlayerJoin(({ entity }) => {
    entity.setPet = buddyFollow(entity, 'mesh/皮卡丘.vb', -1) //给玩家增加宠物
})

world.onPlayerLeave(({ entity }) => {
    //玩家离开地图时, 切记一定要关掉tick循环以及销毁小精灵实体, 否则随着人数增加, 服务器积累到一定程度就会崩溃
    entity.setPet() //干掉宠物
})

2021-10-30T15:21:14 点赞:0

【BOX征集】你们想让瓢虫做什么 中回复

1.杰哥不要啊(剧情)票数13<-------------------------

2.中华鲟洄游大冒险(闯关)票数5

3.这条马路过不去(闯关)票数1

瓢虫中考加油()

Architect全体成员祝你一路走好()

2021-11-04T20:23:41 点赞:0