2017-04-17 9 views
0

現在、コロナSDKを使用してゲームを作成すると画像が表示され、クリックすると3枚の画像が表示され、3枚の画像がクリックされるとスコアが1ずつ増加します。また、これは私にとって新しい言葉です。ありがとう。CoronaSDKタッチイベント

local CButton = display.newImage("+5.jpg" , 100 , 600) 
CButton.alpha = 0.5 
CButton.name = "CButton" 

local CButtonLabel = display.newText({ text = "", x = 0, y = 0, fontSize = 28 }) 
CButtonLabel:setTextColor(0) ; CButtonLabel.x = 100 ; CButtonLabel.y = 45 

local function touchCListener(event) 

local object = event.target 
print(event.target.name.." TOUCH on the '"..event.phase.."' Phase!") 

local ChordCOne = display.newImage("+5.jpg", 900,300) 

local ChordCTwo = display.newImage("+5.jpg", 1000,300) 

local ChordCThree = display.newImage("+5.jpg", 1100,300) 


end 


--add "touch" listener -- LABEL IS FOR TESTING! 

CButton:addEventListener("touch", touchCListener) 

ChordCOne:addEventListener("touch", updateScore) 

CButtonLabel.text = "touch" 

答えて

0

はい、新しいDisplayObjectをリスナー関数で作成し、リスナーをこれらのオブジェクトに追加することもできます。

コードでは、リスナーで作成されたDisplayObjectをGroupObject(たとえばscene.view)に追加していないため、予期しない結果が発生します。

新しく作成されたDisplayObject(ChordCOneなど)を指す変数は、それらがインスタンス化される関数に対してlocalであるため、関数外でaddEventListener()を呼び出すことはできません。作成時にリスナーを追加する必要があります。

また、updateScore()リスナー関数はどこにも定義されていません。 addEventListener()の引数として与えたときは、updateScoreがnilでないことを確認してください。