1

コロナでゲームを作ろうとしています。画面をタップして押し続けるとホイールが回転しますが、画面をタップし続けると回転するだけです。これを変更して、指が画面を押している限り、ホイールは回転しますか?これが私のコードです:

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

--Variables 

--[bike = display.newImage("bike.png")
--bike.x = 70
--bike.y = 290
--physics.addBody(bike, {friction = 0.3, bounce = 0.2})

wheel1 = display.newImage("wheel.png")
wheel1.x = 480 / 2
wheel1.y = 320 / 2

wheel2 = display.newImage("wheel.png")
wheel2.x = 480 / 2 + 50
wheel2.y = 320 / 2 - 50

driveBtn = display.newImage("drive.png")


local function driveFunction( event )


    wheel1.rotation = wheel1.rotation + 3
    wheel2.rotation = wheel2.rotation + 3


end


Runtime:addEventListener("touch", driveFunction)
4

1 に答える 1

0

これは非常に簡単な解決策です。ところで、あなたが幼い頃から開発を始めたのはとても良いことです。コーディングを続けてください^^ 以下のコードまたはその背後にあるロジックを理解できない場合は、コメントを投稿して質問してください。

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

--Variables 

--[bike = display.newImage("bike.png")
--bike.x = 70
--bike.y = 290
--physics.addBody(bike, {friction = 0.3, bounce = 0.2})

local wheel1 = display.newImage("wheel.png")
wheel1.x = 480 / 2
wheel1.y = 320 / 2

local wheel2 = display.newImage("wheel.png")
wheel2.x = 480 / 2 + 50
wheel2.y = 320 / 2 - 50

local driveBtn = display.newImage("drive.png")

local function rotateWheel()
      wheel1.rotation = ( wheel1.rotation + 3 ) % 360
      wheel2.rotation = ( wheel2.rotation + 3 ) % 360
end

local function driveFunction( event )
     if event.phase == "began" then
          display.getCurrentStage():setFocus( wheel1 )
          wheel1.isFocus = true
          Runtime:addEventListener( "enterFrame", rotateWheel )
     elseif wheel1.isFocus then              
          if event.phase == "moved" then
          elseif event.phase == "ended" then
               Runtime:removeEventListener( "enterFrame", rotateWheel )
               display.getCurrentStage():setFocus( nil )
               wheel1.isFocus = false
          end
     end
end

Runtime:addEventListener( "touch", driveFunction )
于 2013-04-23T01:10:48.823 に答える