2011-08-31 82 views
0

當前有此代碼將「播放器」對象移動到註冊點擊的位置。我需要幫助使用lua與corona SDK數學邏輯

該代碼使玩家移動更快遠離事件。我不想要,它應該「不願」走遠。但接近點擊事件時移動速度會更快。

鍵:

球員=物體移動

setLinearVelocity =怎樣的速度應設置。讀取文檔here

distancex =距離從觸摸事件遠在x軸上

distancey =距離觸摸事件在y軸上

10被用來慢下來。

level =範圍從-10到10的值。數值越高,玩家移動的速度越快/越少。

特定代碼:

player:setLinearVelocity((distancex/10)*level, (distancey/10)*level) 

只是想,有完整的代碼可能是有幫助的。

全碼:

function checkpress(event) 
    eventx = event.x 
    eventy = event.y 

if event.phase == "began" then 
     touch = true 

    elseif event.phase == "ended" then 
     touch = false 

    end 
end 
    level = 5 


function move() 
    if touch == true then 
     distancex = eventx - player.x 
     distancey = eventy - player.y 
    player:setLinearVelocity((distancex/10)*level, (distancey/10)*level) 
    else 
     vx, vy = player:getLinearVelocity() 
     player:setLinearVelocity(vx/1.01,vy/1.01) 
    end 
end 

Runtime:addEventListener("touch", checkpress) 
Runtime:addEventListener("enterFrame", move) 

我怎樣才能使它進一步放緩走的時候? 我有麻煩邏輯:(

回答

2

查找事件和玩家之間的距離,然後根據距離除以速度。進一步的方式運動速度較慢。

+0

我是從我的文件離開的那一刻(手機上)但是不會導致x和y值在不同的時間完成?看起來不那麼光滑。 – andrew