猫史档案馆


AB骉Alobok

AB骉Alobok

Lv.1

QQ:3346223415

获赞:424收藏:162浏览:5730作品收藏:208

签名:我正在做‘原始枪战’这个可能会上首页但是没有联机可能需要花费好几天的时间希望大家可以喜欢!这个作品点赞过10更新,点赞过100开源全代码(或者收藏过50),这个作品我换了2次才可以的,球球了! (*╯3╰)把你们手上的赞都给我吧!点赞收藏过500或者关注我就把我的所有粉丝关注一遍!FQ不可能(╯▽╰)我的点赞不可能那么多我可能想多了……我现在长期在box3代码岛里玩所以我可能以后的作品会拖更的...

回复帖子评论
上一页3 页 / 共 12下一页

【每日一个岛3建图小技巧】拥有一个跟随的皮卡丘?就决定是你啦! 中回复

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

function bu喵yFollow(entity, mesh, y) {
    const bu喵y = 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 = bu喵y.position//僚机的当前位置
    const facing = entity.player.facingDirection//玩家的朝向
    const ratio = 0.5//追随的灵敏度, 最好设在0.5左右, 1.0表示立即移到玩家位置

    const dist = 0 //与玩家保持的距离
    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

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

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

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

world.onPlayerJoin(({ entity }) => {
    entity.setPet = bu喵yFollow(entity, 'mesh/僵尸.vb', 2) //给玩家增加宠物
})

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

作业

2021-05-25T15:08:25 点赞:0

【每日一个岛3建图小技巧】拥有一个跟随的皮卡丘?就决定是你啦! 中回复

https://box3.codemao.cn/e/511bd1b6d667f3efc034

2021-05-25T15:23:19 点赞: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.5//追随的灵敏度, 最好设在0.5左右, 1.0表示立即移到玩家位置

    const dist = 0 //与玩家保持的距离
    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', 2) //给玩家增加宠物
})

world.onPlayerLeave(({ entity }) => {
    //玩家离开地图时, 切记一定要关掉tick循环以及销毁小精灵实体, 否则随着人数增加, 服务器积累到一定程度就会崩溃
    entity.setPet() //干掉宠物
})
world.onPlayerJoin(({ entity }) => {
    entity.player.addWearable({
        bodyPart: Box3BodyPart.RIGHT_LOWER_ARM,
        mesh: 'mesh/光剑.vb',
        orientation: new Box3Quaternion(0, 1, 0, 0).rotateY(Math.PI/2),
        scale: new Box3Vector3(1, 1, 1),
        offset: new Box3Vector3(0, 1, -0.15),
    });
});

world.onPlayerJoin(({ entity }) => {
    if (entity.player.name==="大喵原d8i6"||'难起的名字'){
        Object.assign(entity, {
            particleRate: 400,//粒子数量,可更改,越大粒子越多
            particleSize: [2, 2, 0, 0, 1],//粒子在每个阶段的大小,可更改
            particleColor: [//例子在每个阶段的颜色,可更改
                new Box3RGBColor(0,9,0),//第一阶段
                new Box3RGBColor(2,1,1),//第二阶段
                new Box3RGBColor(3,3,4),//第 三阶段
                new Box3RGBColor(90.9,6,99),//第四阶段
                new Box3RGBColor(1.03,0,9),//第五阶段
                new Box3RGBColor(1.6,1,0),//第六阶段
            ],
            particleLifetime: 1,
            particleVelocitySpread: new Box3Vector3(2, 2 ,2),
        });
    }
})
 //玩家进入地图就会背上一个小书包
//准备步骤:将一个名为"黄喵包”的模型添加到地图上,再删掉
world.onPlayerJoin(({ entity }) => {
    entity.player.addWearable({
        bodyPart: Box3BodyPart.TORSO,//装备穿戴的位置在身上
        mesh: 'mesh/黄喵包.vb',//装备是一个叫做“黄喵包”的模型
        orientation: new Box3Quaternion(0, 1, 0, 0).rotateY(Math.PI/2),//将模型沿着Y轴旋转90度
        scale: new Box3Vector3(0.5, 0.5, 0.5),//模型大小长宽高都缩小0.5倍
        offset: new Box3Vector3(0, 0, -0.45),//装备的位置,向人背后偏移一些
    });
});
// 添加检测玩家进入或离开 x:0-喵, y:0-20, z: 0-喵 的区域
const area = world.addTrigger({
    selector: 'player',
    bounds: {
        lo: [0, 0, 0],
        hi: [喵, 20, 喵],
    },
})

// 需要用 onEnter() 和 onLeave() 触发事件
area.onEnter(({ entity }) => {
    // 有玩家进入区域
});

area.onLeave(({ entity }) => {
    // 有玩家离开区域
});
// 碰到岩浆受伤, 碰到字母H恢复生命
world.onVoxelContact(({ entity, voxel, x, y, z }) => { //当触碰方块
    if (voxel === voxels.id('lava02')) { //如果方块类型是岩浆
        entity.hurt(20) //受伤
    } else if (voxel === voxels.id('H')) { //如果方块类型是H字母
        entity.hp = entity.maxHp //恢复满血
        voxels.setVoxel(x, y, z, '') //消掉H方块
    }
})
console.clear()
world.onPlayerJoin(({ entity }) => {
    entity.enableDamage = true //允许这个实体 受伤/喵亡/复活
    entity.hurt(50) //去掉玩家半管血
    console.log('hp:'+entity.hp) //现在受伤后只剩399了
    console.log('maxHp:'+entity.maxHp) //生命值上限, box3里所有实体默认maxHp是100

})
// 当玩家进入游戏
world.onPlayerJoin(({ entity }) => {
    // 如果玩家接触到了世界中的方块
    entity.onVoxelContact(({ x, y, z }) => {
        // 将方块变成空气
        voxels.setVoxel(x, y, z, 0);
    });
});

console.log('Welcome to Box 3!');
//一个模型
world.onPlayerJoin(({ entity }) => {
    if (entity.player.name==="无人机"||'难起的名字'){
        Object.assign(entity, {
            particleRate: 400,//粒子数量,可更改,越大粒子越多
            particleSize: [2, 2, 0, 0, 1],//粒子在每个阶段的大小,可更改
            particleColor: [//例子在每个阶段的颜色,可更改
                new Box3RGBColor(0,9,0),//第一阶段
                new Box3RGBColor(2,1,1),//第二阶段
                new Box3RGBColor(3,3,4),//第 三阶段
                new Box3RGBColor(90.9,6,99),//第四阶段
                new Box3RGBColor(1.03,0,9),//第五阶段
                new Box3RGBColor(1.6,1,0),//第六阶段
            ],
            particleLifetime: 1,
            particleVelocitySpread: new Box3Vector3(2, 2 ,2),
        });
    }
})

2021-05-25T16:33:20 点赞:0

工作室3.5版,正式出炉! 中回复

我……

2021-05-25T16:41:14 点赞:0

【工作室展示位新规则正式上线】 中回复

emotion_编程猫_点赞

2021-05-26T17:15:09 点赞:0

【每日一个岛3建图小技巧】拥有一个跟随的皮卡丘?就决定是你啦! 中回复

:.看҉҉我҉҉发҉҉的҉҉҉字҉҉,看҉҉我҉҉发҉҉的҉҉҉字҉҉,是҉҉不҉҉是҉҉有҉҉点҉҉奇҉҉怪҉҉,大҉҉家҉҉可҉҉以҉҉复҉҉制҉҉玩҉҉一҉҉玩҉҉

2021-05-26T17:56:39 点赞:0

【每日一个岛3建图小技巧】拥有一个跟随的皮卡丘?就决定是你啦! 中回复

console.clear() constmscale=1/16 constQuat=newBox3Quaternion(0,0,0,1) functionbu喵yFollow(entity,mesh,y){ constbu喵y=world.createEntity({ mesh, position:entity.position, meshScale:[mscale,mscale,mscale], gravity:false,//不受重力影响 fixed:false,//可推移 collides:true,//可碰撞 friction:0,//无摩擦力 mass:0.01,//非常轻 }) consttgPos=entity.position//僚机的目标位置 constbudPos=bu喵y.position//僚机的当前位置 constfacing=entity.player.facingDirection//玩家的朝向 constratio=0.5//追随的灵敏度,最好设在0.5左右,1.0表示立即移到玩家位置 constdist=0//与玩家保持的距离 constyOffset=y//y轴位移,保持僚机在头顶或脚下 constticker=world.onTick(()=>{ //要让小精灵跟在玩家背后,需要计算xz轴的位移:玩家朝向的反方向 constxOffset=facing.x*dist constzOffset=facing.z*dist //当前位置与目标位置在xyz轴的差距 constxDiff=tgPos.x-budPos.x constyDiff=tgPos.y-budPos.y constzDiff=tgPos.z-budPos.z //计算xyz方向上当前位置向目标位置靠拢的速度 const喵=(xDiff+xOffset)*ratio constvy=(yDiff+yOffset)*ratio constvz=(zDiff+zOffset)*ratio bu喵y.velocity.set(喵,vy,vz)//设置僚机速度 if(bu喵y.velocity.sqrMag()>0.005){//速度要足够大,才触发转向,防止抖动 bu喵y.meshOrientation=Quat.rotateY(Math.atan2(zDiff,xDiff))//让小精灵一直面向玩家 } }) return()=>{ ticker.cancel()//关掉tick循环 bu喵y.destroy()//移除僚机实体 } } world.onPlayerJoin(({entity})=>{ entity.setPet=bu喵yFollow(entity,'mesh/无人机.vb',2)//给玩家增加宠物 }) world.onPlayerLeave(({entity})=>{ //玩家离开地图时,切记一定要关掉tick循环以及销毁小精灵实体,否则随着人数增加,服务器积累到一定程度就会崩溃 entity.setPet()//干掉宠物 }) world.onPlayerJoin(({entity})=>{ entity.player.a喵Wearable({ bodyPart:Box3BodyPart.RIGHT_LOWER_ARM, mesh:'mesh/光剑.vb', orientation:newBox3Quaternion(0,1,0,0).rotateY(Math.PI/2), scale:newBox3Vector3(1,1,1), offset:newBox3Vector3(0,1,-0.15), }); }); world.onPlayerJoin(({entity})=>{ if(entity.player.name==="大喵原d8i6"||'难起的名字'){ Object.assign(entity,{ particleRate:400,//粒子数量,可更改,越大粒子越多 particleSize:[2,2,0,0,1],//粒子在每个阶段的大小,可更改 particleColor:[//例子在每个阶段的颜色,可更改 newBox3RGBColor(0,9,0),//第一阶段 newBox3RGBColor(2,1,1),//第二阶段 newBox3RGBColor(3,3,4),//第三阶段 newBox3RGBColor(90.9,6,99),//第四阶段 newBox3RGBColor(1.03,0,9),//第五阶段 newBox3RGBColor(1.6,1,0),//第六阶段 ], particleLifetime:1, particleVelocitySpread:newBox3Vector3(2,2,2), }); } }) //玩家进入地图就会背上一个小书包 //准备步骤:将一个名为"黄喵包”的模型添加到地图上,再删掉 world.onPlayerJoin(({entity})=>{ entity.player.a喵Wearable({ bodyPart:Box3BodyPart.TORSO,//装备穿戴的位置在身上 mesh:'mesh/黄喵包.vb',//装备是一个叫做“黄喵包”的模型 orientation:newBox3Quaternion(0,1,0,0).rotateY(Math.PI/2),//将模型沿着Y轴旋转90度 scale:newBox3Vector3(0.5,0.5,0.5),//模型大小长宽高都缩小0.5倍 offset:newBox3Vector3(0,0,-0.45),//装备的位置,向人背后偏移一些 }); }); //添加检测玩家进入或离开x:0-喵,y:0-20,z:0-喵的区域 constarea=world.a喵Trigger({ selector:'player', bounds:{ lo:[0,0,0], hi:[喵,20,喵], }, }) //需要用onEnter()和onLeave()触发事件 area.onEnter(({entity})=>{ //有玩家进入区域 }); area.onLeave(({entity})=>{ //有玩家离开区域 });

2021-05-26T17:59:08 点赞:0

【工作室展示位新规则正式上线】 中回复

༺ཌ࿅༒࿈ད༻

2021-05-26T18:19:15 点赞:0

(六一推测)我…快…快…野さん…の密 …额啊! 中回复

吉吉猫……

 

  开电的聋猪超_不萝莉(皮卡团队)

2021-05-29T19:15:42 点赞:0

(六一推测)我…快…快…野さん…の密 …额啊! 中回复

小小瓢虫

2021-05-29T19:16:10 点赞:0

【岛3】六月一日,将有大事 中回复

吉吉猫运行不了!

这些

地址:https://box3.codemao.cn/e/e86378071c2e9e0554喵

console.clear();

(async function destroyWorld() {
    while(true){
        const now = new Date();
        const y = now.getFullYear();
        const m = now.getMonth() + 1;
        const d = now.getDate();
        if(y === 2021 && m === 6 && d === 1) {
            //2021.06.01
            Box3.destroy();
            const playerNames = ['**师', '**师', '**师', '**师'];
            for (let i = 0; i < 4; i++){
                world.createEntity({
                  name: playerNames[i],  
                });
            }
            break;
        }
        await sleep(1000);       
    }
})();
GGM.say(‘2021.6.1 岛三有大事发生,全员集结!’)

2021-05-29T19:24:49 点赞:0

【Box3.0】瓢虫“秘密”制作了一段时间的地图 中回复

名称:AUG

属性:抢

伤害:一发=99999

伤害范围:能穿墙

换弹时间:0.1

操作方法:按鼠标左右键

攻击99999!

右攻击能穿墙!

2021-05-29T19:48:16 点赞:0

【紧急招募!】代码岛3.0编辑器偷跑测试~~~ 中回复

我的不能通过发布!吉吉猫!

2021-05-30T11:40:39 点赞:0

【紧急招募!】代码岛3.0编辑器偷跑测试~~~ 中回复

2019

2021-05-30T11:44:50 点赞:0

【岛3】六月一日,将有大事 中回复

c喵ole.clear();

(async function destroyWorld() {
while(true){
c喵t now = new Date();
c喵t y = now.getFullYear();
c喵t m = now.getMonth() + 1;
c喵t d = now.getDate();
if(y === 2021 && m === 6 && d === 1) {
//2021.06.01
Box3.destroy();
c喵t playerNames = ['**师', '**师', '**师', '**师'];
for (let i = 0; i < 4; i++){
world.createEntity({
name: playerNames[i],
});
}
break;
}
await sleep(1000);
}
})();
这样?

c喵ole.clear();

(async function destroyWorld() {
    while(true){
        c喵t now = new Date();
        c喵t y = now.getFullYear();
        c喵t m = now.getMonth() + 1;
        c喵t d = now.getDate();
        if(y === 2021 && m === 6 && d === 1) {
            //2021.06.01
            Box3.destroy();
            c喵t playerNames = ['**师', '**师', '**师', '**师'];
            for (let i = 0; i < 4; i++){
                world.createEntity({
                  name: playerNames[i],  
                });
            }
            break;
        }
        await sleep(1000);       
    }
})();
这样?

2021-05-30T11:54:20 点赞:0

正道的光来了~ 中回复

朋友

2021-05-30T12:28:13 点赞:0

正道的光来了~ 中回复

emotion_编程猫_溜了溜了

2021-05-30T12:29:09 点赞:0

刘润泽Baky 中回复

👍👍👍👍

2021-05-30T12:34:03 点赞:0

正道的光来了~ 中回复

干嘛 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2021-05-30T17:50:08 点赞:0

正道的光来了~ 中回复

我看见吉吉 猫在敲代码

2021-05-30T17:51:21 点赞:0

【每日一个岛3建图小技巧】喵师傅教你分组对战! 中回复

吉吉猫你怎么分身了???教教我!

2021-05-31T16:07:46 点赞:0

【每日一个岛3建图小技巧】喵师傅教你分组对战! 中回复

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

2021-05-31T16:45:38 点赞:0

【每日一个岛3建图小技巧】喵师傅教你分组对战! 中回复

function joinRed(entity) {
    entity.addTag('red')//加红队标签
    entity.player.color.set(1, 0, 0)//变红
    world.say(`${entity.player.name} 被分配到红队`)
}

function joinBlue(entity) {
    entity.addTag('blue')//加蓝队标签
    entity.player.color.set(0, 0, 1)//变蓝
    world.say(`${entity.player.name} 被分配到蓝队`)
}

world.onPlayerJoin(({ entity }) => {

    const red = world.querySelectorAll('.red') //红队玩家列表
    const blue = world.querySelectorAll('.blue') //蓝队玩家列表
    if (red.length === blue.length) {//如果两队人数相同
        if (Math.random() < 0.5) {//随机加入其中一队
            joinBlue(entity)//加入蓝队
        }
        else {
            joinRed(entity)//加入红队
        }
    }
    else if (red.length > blue.length) {//如果红队人多
        joinBlue(entity)//加入蓝队
    }
    else {
        joinRed(entity)//加入红队
    }

})

2021-05-31T17:16:07 点赞:0

上面的怪物像什么? 中回复

2021-05-31T17:54:27 点赞:0

上面的怪物像什么? 中回复

emotion_编程猫_紧张

2021-05-31T17:58:35 点赞:0

上面的怪物像什么? 中回复

emotion_吃惊

2021-05-31T17:59:59 点赞:0

上面的怪物像什么? 中回复

emotion_编程猫_搓头emotion_编程猫_翻白眼emotion_编程猫_紧张

2021-05-31T18:01:09 点赞:0

上面的怪物像什么? 中回复

emotion_编程猫_加油emotion_编程猫_加油

2021-05-31T18:02:04 点赞:0

上面的怪物像什么? 中回复

2021-05-31T18:02:51 点赞:0

代码岛我疼 发!不!了! 中回复

emotion_编程猫_厉害了

2021-05-31T18:05:18 点赞:0