猫史档案馆


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

用户:神岛吉吉喵神岛吉吉喵查看:210 回复: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


评论


会python的狸忍会python的狸忍

凳子

点赞0


评论


_Rise__Rise_

地板

点赞0


评论


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

啊啊啊没赶上地板

点赞0


评论


害羞的独角蛛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


评论


白篮白篮

前排

点赞0


评论


难起的名字难起的名字

前排

点赞0


评论


哦那咋了哦那咋了

前排!

点赞0


评论


我是谁..我是谁..

前排

点赞0


评论


TafiTafi

开发API根本看不懂

点赞0


评论


lRobinllRobinl

前排!

点赞0


评论


Architect_煎饼Architect_煎饼

前排哇

点赞0


评论


NeonPlanetNeonPlanet

前排

点赞0


评论


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

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

点赞0


评论