CoronaSDK 触摸事件

目前在使用 Corona SDK 创建游戏时,能否让图片被点击后显示3张图片,当其中1张被点击时得分增加1分。由于我是编程初学者,这是一门新语言。感谢。

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"
点赞
用户3455883
用户3455883

是的,在监听器函数中可以创建新的 DisplayObject,并且还可以将监听器添加到这些对象中。

在你的代码中,你没有将创建的 DisplayObject 添加到任何 GroupObject(比如 scene.view),这会导致意外的结果。

由于指向新创建的 DisplayObject 的变量(ChordCOne 等)是在实例化它们的函数中 local 的,所以你不能在函数外调用 addEventListener()。你应该在它们创建时添加监听器。

另外,updateScore() 监听器函数在任何地方都没有被定义。请确保在给 addEventListener() 作为参数时,updateScore 不是 nil

2017-04-17 18:33:23