Cocos Lua的Touch 点击事件添加
时间: 2023-10-02 18:11:32 浏览: 46
Cocos2d-x Lua中添加点击事件有两种方式:使用触摸事件监听器和侦听器。
1.使用触摸事件监听器
```
local function onTouchBegan(touch, event)
local location = touch:getLocation()
if cc.rectContainsPoint(sprite:getBoundingBox(), location) then
-- 在 sprite 上被点击
return true
end
return false
end
local function onTouchEnded(touch, event)
local location = touch:getLocation()
if cc.rectContainsPoint(sprite:getBoundingBox(), location) then
-- 在 sprite 上被释放
end
end
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN)
listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED)
local eventDispatcher = sprite:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, sprite)
```
2.使用侦听器
```
local function onSpriteClicked(sender)
-- sprite 被点击
end
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN)
listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED)
local eventDispatcher = sprite:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, sprite)
```