在屏幕上操纵杆控制器数学?

时间:2017-08-06 15:20:56

标签: math lua

我想在这个视频中做点什么.. 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 =权力

1 个答案:

答案 0 :(得分:0)

替换

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