画面に触れたときにx軸で動かしたいキャラクターがいるゲームに取り組んでいます。私はこれに成功しましたが、一度だけ移動するのではなく、画面がタッチされている限り、オブジェクトが移動し続けることを望んでいます。これどうやってするの?
3860 次
2 に答える
2
Corona SDK のタッチ イベントは、タッチの開始、終了、または指の動きが検出されたときなど、何かが変化したときにのみ発生します。ボタンが押されている間に何かを実行したい場合は、「enterFrame」イベントが必要になります。
local buttonPressed = false
local function moveCharacter(event)
if buttonPressed then
character.x = characterx + 1
end
end
local function buttonPressed(event)
if event.phase == "began" then
buttonPressed = true
elseif event.phase == "ended" then
buttonPressed = false
end
return true
end
local myButton = display.newRect(0,0,64,48)
myButton:addEventListenr("touch", buttonPressed)
Runtime:addEventListener("enterFrame", moveCharacter)
このシナリオでは、enterFrame リスナーは、ボタンの状態が押されていることを確認すると、キャラクターを移動します。ここで、キャラクターを 1 ピクセルずつ 1 秒間に 30 回移動させたくない場合があるため、移動する小数ピクセル数を計算する必要があります。あなたの buttonPressed は、フラグをオンにして移動機能を機能させる方法になります。
于 2012-12-15T18:50:09.730 に答える
1
Runtimeオブジェクトでタッチリスナーを使用できます。
Runtime:addEventListener("touch", buttonPressed)
または、画面全体を覆う非表示のボタンを作成します。
于 2012-12-15T19:36:20.523 に答える