2017-08-06 6 views
0

私はこのビデオのようなものを作りたいと思っています。 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()で..私のマウスは、黄色の円の外であっても、私のマウスの位置に対向するマウス sqrt =正方形のxおよびy位置を取得することですルート pow =パワー

+1

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

を交換してください。 – Dimitry

答えて

0

は、コードが読みやすくコードが有効Luaのコードがあることを確認することを検討し、使用しているフレームワークを言及検討する質問テキストを再フォーマットを検討

local k = c > 200 and 200/c or 1 
cx = (lm.getX() - 250) * k + 250 
cy = (lm.getY() - 250) * k + 250