用户:
七式草莓查看:6 回复:5 评论:6 创建时间:2022-08-17T12:21:04
自己看吧
1.事件
world.onPlayerJoin(({ entity }) => {
...
})
等于
world.onPlayerJoin((event) => {
var entity = event.entity
...
})
提示:其他事件类似,可以用于传递事件到其他函数(在面向对象编程很有用),示例:
function handler({ entity }){
...
}
world.onPlayerJoin((event) => {
handler(event)
})
知识点:
解构赋值:简化取出对象里边的数据的写法(详见API)
2.装备
// 在玩家进入液体时把穿戴配件'潜水镜'在玩家头上附带
world.onFluidEnter(({ entity }) => {
if (!entity.isPlayer) return;
entity.player.addWearable({
bodyPart: Box3BodyPart.HEAD,
mesh: 'mesh/潜水镜.vb',
orientation: new Box3Quaternion(0, 1, 0, 0),
scale: new Box3Vector3(1, 1, 1),
offset: new Box3Vector3(0, 0, 0.5),
});
});
// 在玩家离开液体时把在玩家头上的穿戴配件删除
world.onFluidLeave(({ entity }) => {
if (!entity.isPlayer) return;
const headWears = entity.player.wearables(Box3BodyPart.HEAD);
// 假设只有1个装备 `headWears[0]`
entity.player.removeWearable(headWears[0]);
});
可以修改成
// 在玩家进入液体时把穿戴配件'潜水镜'在玩家头上附带,并且在玩家离开液体时把在玩家头上的穿戴配件删除
world.onFluidEnter(({ entity }) => {
if (!entity.isPlayer) return;
var wearable = entity.player.addWearable({
bodyPart: Box3BodyPart.HEAD,
mesh: 'mesh/潜水镜.vb',
orientation: new Box3Quaternion(0, 1, 0, 0),
scale: new Box3Vector3(1, 1, 1),
offset: new Box3Vector3(0, 0, 0.5),
});
entity.nextFluidLeave().then(() => wearable.remove())
});
知识点:Box3Wearable.prototype.remove可以删除装备(Box3Wearable是什么请看API)
3.取消特定对话框
// 一个仅显示1秒的对话框
world.onPlayerJoin(({ entity }) => {
var dialog = entity.player.dialog({
type: Box3DialogType.TEXT,
title: "吉吉喵",
content: `你好,${entity.player.name},很高兴认识你。`,
});
sleep(1000).then(dialog.cancel())
})
七式草莓第三个代码错了,更正:
// 一个仅显示1秒的对话框
world.onPlayerJoin(({ entity }) => {
var dialog = entity.player.dialog({
type: Box3DialogType.TEXT,
title: "吉吉喵",
content: `你好,${entity.player.name},很高兴认识你。`,
});
sleep(1000).then(() => dialog.cancel())
})点赞0
评论
function handler({ entity }){
...
}
world.onPlayerJoin((event) => {
handler(event)
})
可以改为
function handler(event){...}
world.onPlayerJoin(handler)点赞0
评论