
Lv.1
在 【每日一个岛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-27T22:44:05 点赞:1
在 气 突 苏(绾兮版) 中回复
https://www.bilibili.com/video/BV1Gi4y1N7q5?share_source=copy_web打开
2021-06-08T14:27:19 点赞:0
在 【html恶搞代码】请输入“你喵” 中回复
<!DOCTYPE html><html><head><meta charest=utf-8></head><body><p style="font-size:15pt;">请输入"我喵"</p><script>function submit(){var x=document.getElementById("text").value;if(x=="我喵"){alert("哈哈哈,猪,你被骗啦!");}else{alert("输入错误!");}}</script><span><input type="text" id="text"><input type="button" value="提交" onclick="submit()"></span></body></html>2021-06-09T20:43:16 点赞:0
在 屑半纸的《斗罗之九尾神狐》招设定呐 中回复
姓名:(例:楚灵月)隆葵英
年龄:(例:18岁)18
性格:(例:活泼可爱)有亿点喵
武魂:(例:九尾狐)龙
所属势力:(例:星斗大森林)星斗大森林
备注:(例:比较呆萌)一直很呆
2021-06-23T20:35:40 点赞:0