用户:指令者查看:40 回复:9 评论:40 创建时间:2021-03-19T12:26:24
如题
标签为a的模型碰到标签为b的模型后喵家传送到出生点
SKQAworld.querySelectorAll('.a').forEach((x)=>{
x.onEntityContact(({other})=>{
if(other.hasTag('b')){
//你的移位
}
})
})点赞0
评论
该账号已被封禁首先 如果你没有对这个实体添加标签,你可以使用a喵Tag()函数,而且可以一次添加多个
然后用world.onEntityContect(({entity:e, other:o})=>{})函数
在world.onEntityContect(({entity:e, other:o})=>{})中写入if(e.hasTag('实体A的标签')){}
代码如下
world.onEntityContect(({entity:e, other:o})=>{
if(e.hasTag('A的标签'){}})
然后第二步是查找整个地图中含有B标签的函数
用const b=world.querySelector('.B的标签')
然后B已经定义了,就是最后的大判定了
代码如下:
world.onEntityContect(({entity:e, other:o})=>{
if(e.hasTag('A的标签'){
const b=world.querySelector('.B的标签')
const pos=b.position;o.position.set(pos)}})
点赞0
评论
world.onEntityContect(({ entity: e, other: o }) => {
if (e.hasTag('A的标签'){//“{”这里有个红波浪
const b = world.querySelector('.B的标签')
const pos = b.position; o.position.set(pos)
}
})点赞0
评论
该账号已被封禁world.onEntityContect(({entity:e, other:o})=>{
if(e.hasTag('A的标签')){
const b=world.querySelector('.B的标签')
const pos=b.position;o.position.set(pos)}})点赞0
评论
SKQA好吧()我再改改()
world.querySelectorAll('.a').forEach((x)=>{
x.onEntityContact(({other})=>{
if(!other.hasTag('b'))return
world.querySelectorAll('player').forEach((x)=>{
if(x.player.name=='用户名')x.position.set(x,y,z)
//上一行照抄报错怪你
})
})
})点赞0
评论
该账号已被封禁算了我直接说代码原理吧
首先onEntityContect函数接受事件
此时‘主动碰撞的实体’就是other重命名为o然后o就是玩家
那么entity重命名为e就是那个带A标签的实体
那么现在使用if判断
判断后定义变量b为世界中的带b标签的实体
此时o是玩家b是带B标签的实体e是带A标签的实体
那么直接将o传送到b就完了
点赞0
评论
SKQA好吧我也重新开个回帖()
我的思路是查找带a的 监听碰撞带b的
用querySA查找带a的命名然后监听onEntityContact事件
事件只需要接收other参数 因为带a实体就是querySA命名的那玩意
直接检测other是否带标签然后不说了
点赞0
评论