如何使Love2D中的Windfield 碰撞器旋转?

我是编程新手,已经选择了Love2D来完成一个项目,我已经完成了一个简短的游戏。我使用Windfield来处理玩家和敌人之间以及剑与敌人之间的大部分碰撞。当前,当玩家图像更改方向时,剑Sprite会正确旋转,但是实际的Windfield碰撞器不会,它就漂浮在玩家旁边。有没有办法让碰撞器以玩家的方向旋转?

剑的当前代码如下:

function love.load()
    sword = {}
    sword.x = 1600
    sword.y = 1170
    sword.collider = world:newRectangleCollider(sword.x + 22, sword.y, 10, 90)
    sword.collider:setCollisionClass('Sword')
    sword.collider:setFixedRotation(true)
    sword.collider:setObject(player)
    sword.dir = "up"
    sword.sprite = love.graphics.newImage('sprites/sword.png')
    sword.found = false
    sword.rotate = nil
end

function love.update(dt)
     if sword.found == true then
            sword.x = player.x
            sword.y = player.y - 10
            sword.dir = player.dir
            sword.collider:setLinearVelocity(vx, vy)
            if sword.dir == "right" then
                sword.rotate = (3 * math.pi)/2
            end
            if sword.dir == "left" then
                sword.rotate = math.pi/2
            end
            if sword.dir == "up" then
                sword.rotate = math.pi
            end
            if sword.dir == "down" then
                sword.rotate = 0
            end
        end
end

function love.draw()
     love.graphics.draw(sword.sprite, sword.x, sword.y, sword.rotate, 1.3, nil, 0.5, 0.5)
end

例如,当玩家面向左侧时,它看起来像这样, 当我面朝下时它看起来像这样。

白色的形状是碰撞器,远离玩家的是剑的碰撞器。

如果代码不干净,我很抱歉,我有点匆忙。

原文链接 https://stackoverflow.com/questions/70524502

点赞