电梯代码-甜甜的又又us
const elevator = world.querySelector('#电梯地板-1') // 获取电梯地板实体
move = 0 //用于判断电梯是否正在移动的变量
elevator.collides = true // 电梯开启碰撞检测
elevator.fixed = true // 电梯不受外力影响
world.onEntityContact(({entity, other})=>{ // 实时监测整个世界的实体碰撞事件。entity指被碰撞的实体, other则是主动撞过来的实体
if (move == 0){ //避免重复引发事件带来的电梯鬼畜
if (entity.id=='电梯地板-1' && other.isPlayer){ // 如果 玩家踏上了电梯
if (elevator.position.y<=28){ // 如果电梯y低于2楼地板, 则判定玩家在1楼
entity.velocity.y = 0.1 // 电梯持续上移
world.say(other.player.name+' 坐电梯上楼')
move = 1 //设置值为1,表示电梯开始移动
}else{
entity.velocity.y = -0.1 // 电梯持续下移
world.say(other.player.name+' 坐电梯下楼')
move = 1 //设置值为1,表示电梯开始移动
}
}
}
})
world.onTick(async()=>{ // 实时检测电梯位置, 进行检测是否到达1楼或2楼
if (elevator.position.y>34){ // 如果电梯y坐标高于2楼的地板, 电梯到达2楼
elevator.position.y = 34 // 复位到2楼的准确位置
elevator.velocity.y = 0 // 电梯停止移动
await sleep(1000) //等待1秒,避免电梯停止时玩家弹起再次与电梯发生碰撞让电梯下行
move = 0 //设置为0,表示电梯停止移动
}
if (elevator.position.y<28){ // 如果电梯y坐标低于1楼的地板, 电梯到达1楼
elevator.position.y = 28 // 复位到1楼的准确位置
elevator.velocity.y = 0 // 电梯停止移动
await sleep(1000) //等待1秒,避免电梯停止时玩家弹起再次与电梯发生碰撞让电梯上行
move = 0 //设置为0,表示电梯停止移动
}
})