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

本文介绍如何在cocos2d-x中实现CCLayer的事件触发仅在其设定区域内生效的方法。通过自定义Lua代码,可以精确控制触摸事件响应范围,避免全屏触发带来的不便。

694

被折叠的 条评论
为什么被折叠?



