猫史档案馆


精灵代码(由吉吉喵的代码改编而成)

用户:天天fUg-天天fUg-查看:0 回复:0 评论:0 创建时间:2024-05-18T15:14:31


console.clear()
const mscale = 1 / 100
const Quat = new GameQuaternion(0, 0, 0, 1)

function buddyFollow(entity, mesh, y) {
    const buddy = world.createEntity({
        mesh,
        position: entity.position,
        meshScale: [mscale, mscale, mscale],
        gravity: false, 
        fixed: false, 
        collides: true, 
        friction: 0, 
        mass: 0.01, 
    })

    const tgPos = entity.position
    const budPos = buddy.position
    const facing = entity.player.facingDirection
    const ratio = 0.3

    const dist = 2 
    const yOffset = y+4

    const ticker = world.onTick(() => {

        const xOffset = -facing.x * dist
        const zOffset = -facing.z * dist

        const xDiff = tgPos.x - budPos.x
        const yDiff = tgPos.y - budPos.y
        const zDiff = tgPos.z - budPos.z

        const 喵 = (xDiff + xOffset) * ratio
        const vy = (yDiff + yOffset) * ratio
        const vz = (zDiff + zOffset) * ratio

        buddy.velocity.set(喵, vy, vz)

        if (buddy.velocity.sqrMag() > 0.005) {
            buddy.meshOrientation = Quat.rotateY(Math.atan2(zDiff, xDiff)) 
        }
    })

    return () => {
        ticker.cancel() 
        buddy.destroy() 
    }
}

world.onPlayerJoin(({ entity }) => {
    entity.setPet = buddyFollow(entity, 'mesh/无人机pro.vb', -1) 
})

world.onPlayerLeave(({ entity }) => {
    entity.setPet() 
})


回复

上一页1 页 / 共 0下一页