1

在我的 cocos2dx 游戏中,我有一个包含另一个 CCLayer 的 CCLayer。子层仅覆盖容器层的一部分。我“认为”我通过以下方式实现了这一目标:

this->setContentSize( CCSizeMake( 100, 200 ) );

然而,子层总是捕获触摸,即使它超出了它的大小和位置区域......这很常见吗?

我可以通过在 ccTouch* *函数中比较触摸位置来过滤触摸位置,但我认为这是一个 hack,将子层设置为仅覆盖其父层的部分区域的正确方法是什么?

4

1 回答 1

0

我唯一能马上想到的就是让这个内层成为一个 CCNODE 并用 CCTouchDelegate 扩展它。现在有了这个,当你向 TouchDispatcher 注册时,你确保它不会 Swallowtouches(作为最后一个参数给出的布尔值)......这样当你收到触摸时......看看它是否在边界内urs 的这个内层,如果不是,发送让父类使用这个触摸。

希望这可以帮助。

于 2014-04-12T10:36:58.537 回答