屏幕虚拟手柄控制器的数学问题?

我想要制作类似这个视频的东西.. https://www.youtube.com/watch?v=Em4Qa09-y90 但是我的问题是.. 当我将鼠标移出黄色圆圈时.. 视频中的红色控制器会完全停止移动,我希望即使我的鼠标移出黄色圆圈,控制器仍然朝向我的鼠标位置..

    cx = 250
    cy = 250
    a = 0
    b = 0
    c = 0
    curx = 0
    cury = 0
    dir = 0
    lg = graphics
    lm = mouse
end

function update()
    a = cx
    b = cy
    c = math.sqrt(math.pow(250 - lm.getX(), 2) + math.pow(lm.getY() - 250, 2))
    dir = math.atan2(250 - cx, cy - 250)

    if c < 200 then
        cx = lm.getX()
        cy = lm.getY()
    end
end

function draw()
    lg.setColor(0,0,0, 127.5)
    lg.circle("fill", cx, cy, 50)
    lg.print(c)
end

屏幕的宽度和高度均为250 lm.getX()lm.getY()是用来获取鼠标的x和y位置的 sqrt = 平方根 pow = 幂

点赞
用户1847592
用户1847592

将下面翻译成中文并且保留原本的 markdown 格式,

if c < 200 then
    cx = lm.getX()
    cy = lm.getY()
end

替换为

local k = c > 200 and 200 / c or 1
cx = (lm.getX() - 250) * k + 250
cy = (lm.getY() - 250) * k + 250
2017-08-06 17:40:56