用户:
神岛吉吉喵查看:18 回复:38 评论:18 创建时间:2020-12-13T13:58:25

谁还没有一个开小卖部的梦想呢?
有吃不完的零食饮料

今天,吉吉喵就帮你实现梦想!
本次API教程将分为上下两期
教大家如何从0建造起一个小卖部
并和npc进行互动、交易
首先是小卖部的建造过程,这里不涉及到代码
充分利用地形方块和模型就可以啦https://www.bilibili.com/video/BV13f4y1i7iW

先把小卖部的外形构造好

然后再用模型装饰细节
鼓励大家用喜欢的风格对小卖部进行自由改造哦~
小卖部建好后
如何查找实体
然后对实体设置参数呢?
将会用到这两个API:
world.querySeletorAll()(查询所有符合标准的实体)
world.searchBox()(一定范围内查询实体)
请戳视频↓↓↓
https://www.bilibili.com/video/BV1dK4y1577r
本教程所用到的代码:
1、查询满足条件的所有实体
API:world.querySeletorAll()
for (const e of world.querySelectorAll('*')) { // 查询语句 '*' 表示查找所有
e.meshEmissive = 1 //高亮所有实体
}
小贴士:查找的模型名前要加#,如“#小学生”
查找的标签名钱要加“.”,如“.瓶盖”
固定格式要记住哦
2、查询多个不同的实体
// 用','隔开不同的查询语句来合并查询结果
for (const e of world.querySelectorAll('.瓶盖垃圾,.空瓶垃圾')) {
e.meshEmissive = 1 //高亮所有实体
}
小贴士:多重查找下,各个条件用逗号替代就行
3、用if语句进一步筛选
让只有没被打标签的实体高亮
for (const e of world.querySelectorAll('*')) {
if(e.tags().length == 0){ //标签列表长度为0
e.meshEmissive = 1 //高亮所有实体
}
}
4、让某个具体的坐标范围内的物品高亮
for (const e of world.searchBox({lo:[63, 9, 92], hi:[76, 19, 103]})){
e.meshEmissive = 1
}
本期的API教程就是这些啦
下期视频将教大家在查找实体后
如何与实体进行互动,敬请期待哦

本节课互动作业:
请结合这节课所学的world.querySelectorAll()
和上节电梯课程中的entity.onVoxelContact()
实现让玩家碰到的实体都报出自己的名字
请把你的答案写在评论区〜

- 相关API文档:https://docs.box3.codemao.cn/
加入代码岛3.0官方内测Q喵
(づ。◕‿‿◕。)づ
作业:
world.onEntityContact(({entity,other})=>{
if (other.isPlayer && !entity.isPlayer) {
entity.say(entity.id)
}
})
点赞0
评论
world.onEntityContact(({entity,other})=>{
if (other.isPlayer && !entity.isPlayer) {
entity.say('我叫:'+entity.id)
}
})
点赞0
评论