猫史档案馆


我求封号

我求封号

Lv.1

获赞:31收藏:2浏览:107作品收藏:4
回复帖子评论
上一页1 页 / 共 7下一页

【神岛创作节】年度优秀地图召唤进度过半,来晒晒你的作品吧~ 中回复

我发布了!

2022-07-28T16:46:48 点赞:0

《德洛雪天水上跑酷》寻找代码师,建筑师 中回复

我会代码我要合作

 

2022-10-08T14:22:33 点赞:0

岛3协会讨论区 中回复

https://box3.cod喵/e/64e81cf2f5e70aabb67b 代码师3,建筑师3  

2022-10-15T09:02:19 点赞:0

叉子看到请回帖()))(() 中回复

https://box3.codemao.cn/e/喵e81cf2f5e70aabb67b  

2022-10-15T09:10:32 点赞:0

《挂机回来之后》 中回复

emm

鹅鹅鹅鹅鹅

2022-10-16T10:40:41 点赞:0

如果有人那就来 中回复

一直在

2022-10-16T11:09:01 点赞:0

[求助]如何放置多个NPC 中回复

e

 

 

 

2022-10-16T11:12:53 点赞:0

我在哪里 我什么也看不见 中回复

emm

你是。。。

2022-10-17T11:25:26 点赞:1

[box3]创建连点器 中回复

包从好

 

2022-10-17T11:26:27 点赞:0

代码岛的脚本 中回复

???

2022-10-17T12:31:30 点赞:0

有人就来吧 中回复

我的天

2022-10-17T14:13:11 点赞:0

有人就来吧 中回复

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() //清除掉宠物
})

2022-10-17T14:18:28 点赞:0

有人就来吧 中回复

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

2022-10-17T14:18:51 点赞:0

BOX3 Blockly图形化意见反馈 中回复

想要一个PVP的代码急需谢谢

2022-10-19T13:28:04 点赞:0

《喆喵帮》 中回复

链接

2022-10-19T15:40:21 点赞:0

哪位大佬会修bug帮个忙谢谢https://box3.codemao.cn/e/喵e81cf2f5 中回复

https://box3.codemao.cn/e/84896be1ee1b8fba411c

2022-10-20T10:27:42 点赞:0

彩蛋活动开始! 中回复

看了

2022-10-21T09:23:11 点赞:0

关于代码岛打不开地图谁有疑问 中回复

官方解释一下我们学生好不容易熬到了周末

2022-10-22T10:58:02 点赞:0

也不看看这种挂!! 中回复

9494

2022-10-22T11:43:29 点赞:0

求助!!!谁可以给我box3玩家出生变为模型的代码!!!求求~ 中回复

我来

2022-10-22T17:27:50 点赞:0

求助!!!谁可以给我box3玩家出生变为模型的代码!!!求求~ 中回复

/* 玩家进入游戏时,变成一颗星星。5秒后恢复。 */
world.onPlayerJoin(async({ entity }) => {
  const originPlayerMesh = entity.mesh;

  // 需要先在场景摆放一个名字为 星星 的模型
  entity.mesh = world.querySelector('#星星').mesh
  entity.meshScale = new Box3Vector3(1/24, 1/24, 1/24);
  entity.meshOrientation = new Box3Quaternion(0, 1, 0, 0)
  entity.player.invisible = true;

  await sleep(5000)
  entity.mesh = originPlayerMesh
  entity.player.invisible = false;

});

2022-10-22T17:30:22 点赞:0

【教程】制作更精美的河道 中回复

还不错

2022-10-22T17:32:02 点赞:0

猜猜加密的代码是什么() 中回复

鹅鹅鹅

2022-10-23T14:26:59 点赞:0

10.24程序员节快乐! 中回复

eee

2022-10-24T11:24:48 点赞:0

【心灵导师咨询】我,心灵导师一枚,有任何问题在此贴评论处回复我,第一个回复我的进我图 中回复

额()

2022-10-24T11:25:46 点赞:0

又进不去了(代码岛) 中回复

一直卡在99

2022-10-24T11:32:44 点赞:0

问一下为啥斗兽场可以打开 中回复

这人数可怕开学的时候从来没有的人数

2022-10-24T11:44:32 点赞:0

问一下为啥斗兽场可以打开 中回复

额()

2022-10-24T11:45:00 点赞:0

【求助】怎么在神岛做出按钮选项效果 中回复

//封装成函数是因为它会被多次用到(显示玩家状态, 显示与NPC交互结果)
function textDialog(entity, content, title) {
    return entity.player.dialog({ //弹出对话框
        type: Box3DialogType.TEXT, //对话框类型为纯文本
        content, //文本内容
        title, //对话框左上角标题内容
    })
}

world.onPlayerJoin(({ entity }) => { //玩家进入游戏时在这里初始化玩家的资产
    entity.junk = 0 //废品
    entity.money = 0 //钱
    entity.itemList = [] //口袋里的货品

    entity.player.onPress(({ button }) => { //每当有按钮被按下
        if (button == Box3ButtonType.ACTION1) { //如果按钮是右键
            textDialog(entity, `你身上有:\n\n${entity.money}元, ${entity.junk}个废品\n道具: [${entity.itemList}]`)
        }
    })
})

2022-10-24T18:17:01 点赞:0

【求助】怎么在神岛做出按钮选项效果 中回复

else if (npc.id == '小卖部老板') { //如果实体名是'小卖部老板'
        npc.onInteract(async ({ entity }) => { //当玩家对这个npc按E触发交互, npc问你想买哪些商品
            const goodsList = ['薯片', '可乐', '糖果'] //货品列表
            const priceList = [7, 5, 4] //价格列表
            const selection = await entity.player.dialog({
                type: Box3DialogType.SELECT, //对话框类型为选择框
                content: `你有${entity.money}元, 想买点什么呢?`,
                title: npc.id, //对话框左上角显示NPC名字
                options: ['薯片 (7元)', '可乐 (5元)', '糖果 (4元)'], //选项
            })
        })
    }

2022-10-24T18:17:26 点赞:0