用户:
乌力VD5e-2查看:0 回复:0 评论:0 创建时间:2022-12-31T14:50:50
//这是我目前用的
async function shoot(entity,mesh,speed,scale,atk,lifetime,raycast){
Meshscale = [scale,scale,scale] //实体的缩放比例,根据原模型大小而设,一般情况设为[ 1/16, 1/16, 1/16]
const d = entity.player.facingDirection
r = raycast //r为射线检测
const ball = world.createEntity({
mesh: `mesh/${mesh}.vb`,
meshScale: Meshscale,
collides: true, // 开启碰撞
gravity: false, // 不受重力影响
position: entity.position, // 在射线原点生成球
velocity: d.scale(speed), // 球的初速度设为玩家射喵射方向向量的2倍
mass:0.1,
meshEmissive:true,
})
ball.id = entity.player.name
ball.onEntityContact(async({ other }) => { //每当球碰到另一个实体
if(other === entity)return
other.hurt(atk,{attacker:entity,damageType:'精神'}) //被碰实体受5点伤害
})
ball.onVoxelContact(({ voxel }) => {
ball.destroy()
})
await sleep(lifetime) //等5秒后自动清除球体
ball.destroy()
}