2013-07-10 77 views
3

我剛剛開始使用基本的Corona SDK項目,並且遇到了一些障礙。我製作的物體和菜單都很好,甚至還增加了遊戲的重力,但我想知道是否有一種簡單的方法,當用戶刷屏時物體會移動,而物體會沿着這個大方向移動。試圖讓一個對象向用戶滑動的方向移動:Corona SDK

任何幫助將不勝感激,我對象的代碼是向下跌破

-- make a Chameleon 
local Chameleon = display.newImageRect("Chameleon.png", 70, 70) 
Chameleon.x= 50 
Chameleon.y= 440 
    physics.addBody(Chameleon, "dynamic", {density=.1, bounce=.1, friction=.2, radius=12}) 

function touchScreen(event) 
    -- print("touch") 
end 

Runtime:addEventListener("touch", touchScreen) 

回答

3

如果要實現與線速度拖動對象只是將代碼複製,並做出新的,你可以參考下面的代碼項目

local physics = require("physics") 
physics.start() 

local Rect = display.newRect(30,30,30,30) 
Rect:setFillColor(255,0,0) 

local flooring = display.newRect(0,display.contentHeight/1.1, display.contentWidth, 10) 
    physics.addBody(Rect,"dynamic") 
    physics.addBody(flooring,"static") 

    local activateDash = false 
    local bx = 0 
    local by = 0 

    heroTouch = function(event) 
     if Rect then 
      if event.phase == "began" then 
       bx = event.x 
       by = event.y 
      elseif event.phase == "moved" then 
       activateDash = true 
      elseif event.phase == "ended" then 
       if activateDash then 
        if _G.gX == 0 and _G.gY ~= 0 then 
         Rect:setLinearVelocity(event.x-bx,0) 
        elseif _G.gX ~= 0 and _G.gY == 0 then 
         Rect:setLinearVelocity(0,event.y-by) 
        else 
         Rect:setLinearVelocity(event.x-bx,event.y-by) 
        end 
        activateDash = false 
       end 
      end 
     end 
    end 
Runtime:addEventListener("touch",heroTouch) 

希望這可以幫助

+0

非常感謝你,這個偉大的工程!雖然我還有你,但如果你不介意的話,如果我想讓對象停下來並掛在某個點上(在被點擊之後),你能引導我指出可能的方法或另一種方法例。 – ctyler9

+0

如果對象與另一個對象碰撞或者它到達某個特定點,您希望對象在特定位置停止?順便說一句,你可以投票的答案,使其成爲其他人的參考 – DevfaR

+0

如果它要繼續某一點。我會投票,但我沒有足夠的聲望點。只有3可悲。 – ctyler9