cocos2d-x中的CCLayer的事件都是满屏的,即使我们设置的contentSize并不是整个屏幕大小。
要想做到只有点击到CCLayer的区域时才触发事件怎么做呢,很简单,只需要在touchBegan的时候判断下触摸点是否落在CCLayer的boundingBox区域
下面是lua的代码,cocos2d-x的代码类似
--------------------------------------
-- 判断点击点是否落在指定对象上
--------------------------------------
function isClickInTarget(target, x, y)
local parent = target:getParent();
if not parent then
Log.debug("父类空")
return false
end
local clickPoint = parent:convertToNodeSpace(ccp(x, y))
local rect = target:boundingBox()
if rect:containsPoint(clickPoint) then
return true
else
return false
end
end