電梯代碼-甜甜的又又us
const?elevator?=?world.querySelector('#電梯地板-1')?//?獲取電梯地板實(shí)體
move?=?0?//用于判斷電梯是否正在移動(dòng)的變量
elevator.collides?=?true?//?電梯開(kāi)啟碰撞檢測(cè)
elevator.fixed?=?true?//?電梯不受外力影響
world.onEntityContact(({entity,?other})=>{?//?實(shí)時(shí)監(jiān)測(cè)整個(gè)世界的實(shí)體碰撞事件。entity指被碰撞的實(shí)體,?other則是主動(dòng)撞過(guò)來(lái)的實(shí)體
????if?(move?==?0){?//避免重復(fù)引發(fā)事件帶來(lái)的電梯鬼畜
????????if?(entity.id=='電梯地板-1'?&&?other.isPlayer){?//?如果?玩家踏上了電梯
????????????if?(elevator.position.y<=28){?//?如果電梯y低于2樓地板,?則判定玩家在1樓
????????????????entity.velocity.y?=?0.1?//?電梯持續(xù)上移
????????????????world.say(other.player.name+'?坐電梯上樓')
????????????????move?=?1?//設(shè)置值為1,表示電梯開(kāi)始移動(dòng)
????????????}else{
????????????????entity.velocity.y?=?-0.1?//?電梯持續(xù)下移
????????????????world.say(other.player.name+'?坐電梯下樓')
????????????????move?=?1?//設(shè)置值為1,表示電梯開(kāi)始移動(dòng)
????????????}
????????}
????}
????})
world.onTick(async()=>{?//?實(shí)時(shí)檢測(cè)電梯位置,?進(jìn)行檢測(cè)是否到達(dá)1樓或2樓
????if?(elevator.position.y>34){?//?如果電梯y坐標(biāo)高于2樓的地板,?電梯到達(dá)2樓
????????elevator.position.y?=?34?//?復(fù)位到2樓的準(zhǔn)確位置
????????elevator.velocity.y?=?0?//?電梯停止移動(dòng)
????????await?sleep(1000)?//等待1秒,避免電梯停止時(shí)玩家彈起再次與電梯發(fā)生碰撞讓電梯下行
????????move?=?0?//設(shè)置為0,表示電梯停止移動(dòng)
????}
????if?(elevator.position.y<28){?//?如果電梯y坐標(biāo)低于1樓的地板,?電梯到達(dá)1樓
????????elevator.position.y?=?28?//?復(fù)位到1樓的準(zhǔn)確位置
????????elevator.velocity.y?=?0?//?電梯停止移動(dòng)
????????await?sleep(1000)?//等待1秒,避免電梯停止時(shí)玩家彈起再次與電梯發(fā)生碰撞讓電梯上行
????????move?=?0?//設(shè)置為0,表示電梯停止移動(dòng)
????}
})