猫史档案馆


老活新整!公开《碰撞吧!小汽车的代码》你想怎样再次创作?

用户:肥宅快乐水hhh肥宅快乐水hhh查看:5 回复:12 评论:5 创建时间:2021-07-31T18:12:39


hi我是宅宅,距离碰碰车地图已经过去半年了,现在也成功的下架了潜力新作(早就下架了))

所以,宅宅要开始整活了()()()()

emotion_编程猫_点赞

碰碰车地图代码公开!你想进行怎样的再次创作呢?发挥你的创意,进行再次创作吧!

以下为碰碰车代码:(地图大小必须为32*32,如果要变大或变小请自行)

 

let end_game;//https://box3.codemao.cn/e/44989231ffeced29d575
var gamewj = world.querySelectorAll('player').length;
var winner2 = '';
var yx = 0;
var mutelist = [];
var start111 = false;
(async function () {
    for (; ; await sleep(500)) {
        if (!world.start) {
            // 检测人数
            if (world.querySelectorAll('player').length < 2) {
                world.say(`当前人数不够${2}人, 再等等吧!`);
                continue;
            }
            if (winner != '') {
                world.say('本局游戏' + winner + '获胜!大家恭喜!')

                world.say('下局Ta将获得超帅定制版跑车以及红色用户名效果!')
            }
            start111 = false;
            gamewj = world.querySelectorAll('player').length;
            world.say('当前还有' + gamewj + '名玩家正在参赛')

            for (let i = 10; i > 0; i--) {
                await sleep(1000);
                world.say(`倒计时:${i}...`);
            }
            gamewj = world.querySelectorAll('player').length;
            if (gamewj <= 1) {
                world.say(`当前人数不够${2}人, 再等等吧!`);
                continue;
            }
            
            start111 = true;
            await start();

        }
    }
}())

world.querySelectorAll('player').forEach((e) => {//选中标签为‘打飞’的模型
    e.onEntityContact(({ entity, other }) => {//设置目标模型的碰撞事件.
        if (!other.isPlayer) { return } //防止非玩家实体参与检测.(这三句话是不是似曾相识啊(*^▽^*))
            other.velocity.y += 5;//然后将玩家以正Y轴甩飞出去
    })//万能框架
})//万能框架
var winner = '';




world.onPlayerJoin(async ({ entity }) => {
    await sleep(500)
    entity.player.scale = 0.5;
    entity.collides = true;
    entity.player.runSpeed = 0.4;
    entity.player.runAcceleration = 0.2;
    entity.player.jumpPower = 0.9;
    entity.player.doubleJumpPower = false;

})

const cars = ['这里你要放汽车模型的名字(可以放很多模型)','汽车2']

world.onPlayerJoin(async ({ entity }) => {
    entity.meshScale = new Box3Vector3(1 / 16, 1 / 16, 1 / 16);
    entity.meshOrientation = new Box3Quaternion(0, 1, 0, 0)
    entity.player.invisible = true;

});









world.onVoxelContact(({ x, y, z, voxel }) => {
    const voxelName = voxels.name(voxel);  // 将方块id转换名称
    if (voxelName === 'glass') {              // 如果方块名称是冰块
        voxels.setVoxel(x, y, z, 0);       // 将方块变成空气
    }
});


world.start = false
world.onPlayerJoin(({ entity }) => {
    entity.ks == false;  //
});
world.onTick(async ({ }) => {
    world.querySelectorAll('player').forEach((e) => {

        if (e.position.y <= 0 && !e.player.spectator && yx == 1) {//
            e.player.spectator = true
            e.player.invisible = true
            e.mesh = 0
            world.say(e.player.name + ' 掉下去了')
            e.player.directMessage('你失败了')
            gamewj -= 1;
            if (gamewj <= 1) {
                end_game();
            }
            e.player.game = 'over';
            e.player.showName = false
        }

        if (e.player.game != 'over' && gamewj == 1) {
            winner = e.player.name;

        }
    })

});
world.onPlayerLeave(({ entity }) => { //当玩家离开地图时
    gamewj -= 1;
})
world.onPlayerJoin(async({ entity }) => {


    entity.restitution = 10
    entity.player.game = 'over';
    
})
world.onEntityContact(({ force, axis, entity, other }) => {
    if (!entity.isPlayer || !other.isPlayer) { return }
    entity.velocity.set(axis.x * 1+Math.random()*0.4, axis.y * 1+Math.random()*0.4, axis.z * 1+Math.random()*0.4)
    entity.velocity.set(axis.x *1+Math.random()*0.4, axis.y * 1+Math.random()*0.4, axis.z * 1+Math.random()*0.4)
})


async function start() {
    gamewj = world.querySelectorAll('player').length;
    
    for (let x = 0; x < 31; x++) {
        for (let y = 9; y < 14; y++) {
            voxels.setVoxel(x, y, 31, 'glass');

        }
    }
    for (let x = 0; x < 31; x++) {
        for (let y = 9; y < 14; y++) {
            voxels.setVoxel(x, y, 0, 'glass');

        }
    }
    for (let z = 0; z < 31; z++) {
        for (let y = 9; y < 14; y++) {
            voxels.setVoxel(0, y, z, 'glass');

        }
    }
    for (let z = 0; z < 31; z++) {
        for (let y = 9; y < 14; y++) {
            voxels.setVoxel(31, y, z, 'glass');

        }
    }
    
    //for(let w=0;w<12;w++)
    //{
       // voxels.setVoxel(2+w, 8, 29-w, 'pink_light')
   // }
    for(let w=0;w<12;w++)//神奇的追梦写的神奇的代码
    {   
        //这里是还原赛场四边的四条中心线
        world.say('正在还原赛场中...')
        voxels.setVoxel(2+w, 8, 29-w, 'white')
        voxels.setVoxel(2+w, 8, 2+w, 'white')
        voxels.setVoxel(29-w, 8, 2+w, 'white')
        voxels.setVoxel(29-w, 8, 29-w, 'white')
        //此代码用于游戏前赛场线条还原
        //这里是还原赛场四周的紫色线条
        voxels.setVoxel(4+w, 8, 29, 'white')
        voxels.setVoxel(27-w, 8, 29, 'white')
        voxels.setVoxel(29, 8, 27-w, 'white')
        voxels.setVoxel(29, 8, 4+w, 'white')
        voxels.setVoxel(27-w, 8, 2, 'white')
        voxels.setVoxel(4+w, 8, 2, 'white')
        voxels.setVoxel(2, 8, 4+w, 'white')
        voxels.setVoxel(2, 8, 27-w, 'white')
        //这里是还原中心线旁边的黄线
        voxels.setVoxel(3+w,8,29-w,'white')
        voxels.setVoxel(2+w,8,28-w,'white')
        voxels.setVoxel(2+w,8,3+w,'white')
        voxels.setVoxel(3+w,8,2+w,'white')
        voxels.setVoxel(28-w,8,2+w,'white')
        voxels.setVoxel(29-w,8,3+w,'white')
        voxels.setVoxel(29-w,8,28-w,'white')
        voxels.setVoxel(28-w,8,29-w,'white')
        await sleep(50)
    }
    for(let w=0;w<12;w++)
    {
        world.say('正在重置赛场中...')
        voxels.setVoxel(2+w, 8, 29-w, 'blue_light')
        voxels.setVoxel(2+w, 8, 2+w, 'blue_light')
        voxels.setVoxel(29-w, 8, 2+w, 'blue_light')
        voxels.setVoxel(29-w, 8, 29-w, 'blue_light')
        await sleep(300)
        //

    }
    for(let w=0;w<12;w++)
    {
        voxels.setVoxel(3+w,8,29-w,'warm_yellow_light')
        voxels.setVoxel(2+w,8,28-w,'warm_yellow_light')
        voxels.setVoxel(2+w,8,3+w,'warm_yellow_light')
        voxels.setVoxel(3+w,8,2+w,'warm_yellow_light')
        voxels.setVoxel(28-w,8,2+w,'warm_yellow_light')
        voxels.setVoxel(29-w,8,3+w,'warm_yellow_light')
        voxels.setVoxel(29-w,8,28-w,'warm_yellow_light')
        voxels.setVoxel(28-w,8,29-w,'warm_yellow_light')
        await sleep(100)
    }
    for(let w=0;w<10;w++)
    {
        world.say('边线绘制...')
        voxels.setVoxel(4+w, 8, 29, 'purple')
        voxels.setVoxel(27-w, 8, 29, 'purple')
        voxels.setVoxel(29, 8, 27-w, 'purple')
        voxels.setVoxel(29, 8, 4+w, 'purple')
        voxels.setVoxel(27-w, 8, 2, 'purple')
        voxels.setVoxel(4+w, 8, 2, 'purple')
        voxels.setVoxel(2, 8, 4+w, 'purple')
        voxels.setVoxel(2, 8, 27-w, 'purple')
       // voxels.setVoxel(2+w, 8, 2+w, 'blue_light')
      //  voxels.setVoxel(29-w, 8, 2+w, 'blue_light')
        //voxels.setVoxel(29-w, 8, 29-w, 'blue_light')
        await sleep(50)
        //

    }//pink_light||mint_green_light
    await sleep(1000)
    world.say('赛场重置成功!')
    await sleep(500)
    world.say('本局游戏开始!')
    await sleep(400)
    world.say('大家快来争取限定胜利者皮肤吧!')
    world.querySelectorAll('player').forEach((e) => {//快点aa
    yx = 1;
    
        Object.assign(e, {
            particleRate: 20,
            particleSize: [4, 8, 16, 8, 20],
            particleColor: [
                new Box3RGBColor(10, 9, 2),
                new Box3RGBColor(5, 0.25, 0.1),
                new Box3RGBColor(3, 0.05, 0.05),
                new Box3RGBColor(0, 0, 0),
                new Box3RGBColor(0, 0, 0),
            ],
            particleLifetime: 1,
            particleVelocitySpread: new Box3Vector3(2, 2, 2),
        });
        e.position.set(Math.random(6, 27), 10, Math.random(6, 27))
        e.mesh = world.querySelector(cars[Math.floor(Math.random() * cars.length)]).mesh
        e.player.game = 'start'
        e.position.set(15 - Math.random() * 6, 10 + Math.random() * 6, 16 - Math.random() * 6)
        e.player.spectator = false;
        e.player.game = ''
        if (e.player.name == winner) {
            e.player.color.set(1, 0, 0);
            e.mesh = world.querySelector('#跑车22').mesh
            e.meshOrientation = new Box3Quaternion(0, 1, 0, 0)
            e.player.directMessage('你是上局的获胜者,恭喜你获得定制版跑车使用一局!')
        }
        else {
            e.player.color.set(1, 1, 1);
            e.player.showName = true;
            e.meshOrientation = new Box3Quaternion(0, 1, 0, 0)
        }
        if (e.player.name == '宅宅梦想家' || e.player.name == '追梦喵aowC' || e.player.name == '残孤之音' || e.player.name == 'BCX编程中手~' || e.player.name == '神兽喵' || e.player.name == '皮卡丘→'|| e.player.name == '岛3协会会长') {
            world.say('欢迎创作者' + e.player.name + '参与游戏!')
            world.say('Ta获得了创作者专属黑色至尊跑车!')
            e.mesh = world.querySelector('#跑车-1').mesh
            e.meshOrientation = new Box3Quaternion(0, 1, 0, -1)
        }

    })
    await new Promise(async (resolve) => {//把他复制到游戏里
        end_game = resolve; // 设置游戏结束函数  自爆系统
        await sleep(900 * 1000); // 等待15分钟
        world.say('游戏超时,地图开始重启')
        resolve(); // 如果游戏没有提前结束, 就会由于到时间而结束
    });
    end_game = undefined
    world.querySelectorAll('player').forEach((e) => {
        Object.assign(e, {
            particleRate: 0,

        });
    })
}



回复

上一页1 页 / 共 1下一页
一个STUB用户_14302596一个STUB用户_14302596

明正之举,开源的心态,这也是宅宅的地图虽然可玩性不大,但是我也要关注他的原因,也请大家不要抄袭,自觉一点

点赞4


评论


憨白不憨awa憨白不憨awa

学习一下()

点赞0


评论


egg鸡蛋蛋egg鸡蛋蛋

教程师原代码

好诶

点赞0


评论


小鹿UUyM小鹿UUyM

源代码唉

点赞0


评论


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

教程师代码欸!

点赞0


评论


秋洋赦春秋洋赦春

我想做一个类似碰碰车的地图,请问可以用你的代码吗?

点赞0


评论


快乐的皮卡丘A快乐的皮卡丘A

源码

点赞0


评论


难起的名字难起的名字

喵d

点赞1


评论


用户_869149用户_869149

顶顶顶!

点赞1


评论


坦率的血翼蝠5801坦率的血翼蝠5801

👍

点赞0


评论


IaeaIaea

wa

点赞0


评论


alopdopsalopdops

ncdjsbv

点赞0


评论