猫史档案馆


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

用户:神岛吉吉喵神岛吉吉喵查看:43118 回复:175 评论:210 创建时间:2020-09-12T10:34:54


center_image

有萌新跟吉吉喵说,

“哎呀,我不会代码呀😭”

 

喵喵告诉你

看了这个教程

6岁半以上都能学会

👇👇👇👇👇

(视频链接:https://www.bilibili.com/video/BV1M54y1m7C8/)

视频展示了怎么从0开始

使用常用的Box3 API

创作一个小游戏《围猎公鸡》

center_image

 

实现功能:

 - 生成200+会乱跳动的公鸡模型, 公鸡会破坏土地, 但毁不掉最底层的石块

- 玩家移动的轨迹会生成岩浆, 岩浆可以杀伤鸡群并加入计分, 玩家通过围着鸡群跑, 生成一圈岩浆防止它们扩大破坏

 - 玩家被公鸡碰到会受伤喵亡, 可以通过聊天命令复活

所用代码如下:

(注意喵是 n c)

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(40)//公鸡扣40生命
        }else{
            voxels.setVoxel(x,y,z,'')//公鸡可以破坏其他类型的方块
        }
    })

    entity.onEntityContact(({other})=>{//当公鸡碰到另一个模型实体
        if(other.isPlayer){//如果另一个模型实体是玩家
            other.hurt(20)//这个玩家扣20生命
        }
    })

    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++){//生成 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
        //让所有实体对你说欢迎
        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.breakVoxelSound=world.placeVoxelSound=''

 

emotion_编程猫_加油

打开API文档

https://docs.box3.codemao.cn/

了解Box3代码还能做什么

 

API文档的《World世界》章节样式更新啦!

center_image

- 增加了目录

- 样式更美观易读

你喜欢吗?

emotion_编程猫_厉害了

加入代码岛3.0官方内测Q喵

代码岛3.0官网:box3.codemao.cn


回复

上一页第 1 页 / 共 6 页下一页
未命名用户015734未命名用户015734

沙发?

点赞0


评论

nia?(吓到说不出话)

哈哈 认证

喵是啥


会python的狸忍会python的狸忍

凳子

点赞0


评论


_Rise__Rise_

地板

点赞0


评论


传闻中的五音璃音传闻中的五音璃音

啊啊啊没赶上地板

点赞0


评论

拓展可以做个围猎吉吉喵[doge]

哈哈 等着你做

好主意↑

https://box3create.codemao.cn/games/a16f7c51d8f7a5274593

https://box3create.codemao.cn/games/a16f7c51d8f7a5274593

https://box3create.codemao.cn/games/a16f7c51d8f7a5274593


害羞的独角蛛907害羞的独角蛛907

前排

点赞0


评论


lon江航lon江航

emotion_编程猫_加油

点赞0


评论


时_代眼泪_卡西米尔骑士时_代眼泪_卡西米尔骑士

前排

点赞0


评论


坚强的流星猫ULBT坚强的流星猫ULBT

打卡

点赞0


评论


SGY喵茶九尾SGY喵茶九尾

前排nia

点赞0


评论


地板砖飞行器_太阳人_地板砖飞行器_太阳人_

打包

点赞0


评论


我是曲奇饼干我是曲奇饼干

顶顶

点赞0


评论


yuansyuans

吉吉喵,来这一下,谢谢https://box3create.codemao.cn/games/1b00a1695b94a23c6123

点赞0


评论


Weeb_ETOWeeb_ETO

生日

点赞0


评论


BSS梅者如西BSS梅者如西

前排

点赞0


评论


熊猫Mango熊猫Mango

嗯,编程猫真是越来越好了emotion_编程猫_加油

点赞0


评论


ZaonaZaona

emotion_编程猫_加油

点赞0


评论


韵律源点Arcaea韵律源点Arcaea

前排!

点赞0


评论


美队钢铁侠美队钢铁侠

前排

点赞0


评论


你好2050_反防沉迷_反岛三出图形化你好2050_反防沉迷_反岛三出图形化

前排

点赞0


评论


隐日青空隐日青空

某吉你皮了哈哈哈(我是不是该在动画上加一句:吉吉喵 2020年12日 卒)

点赞0


评论


未命名用户015734未命名用户015734

当不了评论的课代表也要当视频里的!(什

视频中的橙色弹幕是我发的!

祝看得开心(ง •_•)ง

点赞0


评论

哦……我还以为吉吉喵发的()

幼稚,你不会玩b站

喵你发了58个弹幕,课代表没用,反倒影响观看体验其实,你不会玩b站

你觉得全文让课代表占了,尤其是这种底层up,能看的开心,嘛

那……以后不发了


白篮白篮

前排

点赞0


评论


难起的名字难起的名字

前排

点赞0


评论

前排


哦那咋了哦那咋了

前排!

点赞0


评论

来我地图

qwq我现在没钉钉了

链接


我是谁..我是谁..

前排

点赞0


评论


TafiTafi

开发API根本看不懂

点赞0


评论


lRobinllRobinl

前排!

点赞0


评论


Architect_煎饼Architect_煎饼

前排哇

点赞0


评论


NeonPlanetNeonPlanet

前排

点赞0


评论


你好2050_反防沉迷_反岛三出图形化你好2050_反防沉迷_反岛三出图形化

https://box3create.codemao.cn/games/7c5d01c2d3b724584616,看我的(你们肯定会笑喵的)

点赞0


评论