gpt4 book ai didi

ios - Cocos2d处理触摸多层

转载 作者:行者123 更新时间:2023-11-29 04:19:16 24 4
gpt4 key购买 nike

我正在尝试为图层启用触摸,正如许多其他人在网上建议的那样:

        hudLayer = [[[CCLayer alloc] init] autorelease];
[self addChild:hudLayer z:3];

gameLayer = [[[CCLayer alloc] init] autorelease];
[self addChild:gameLayer z:1];
gameLayer.isTouchEnabled = YES;

rileyLayer = [[[CCLayer alloc] init]autorelease];
[self addChild:rileyLayer z:2];

pauseMenu = [[[CCLayer alloc] init] autorelease];
[self addChild:pauseMenu z:4];

[[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:hudLayer priority:0 swallowsTouches:YES];

我的触摸方法在这里:

- (BOOL)ccTouchBegan:(NSSet *)touch withEvent:(UIEvent *)event {
return TRUE;
}

- (void)ccTouchEnded:(NSSet *)touch withEvent:(UIEvent *)event {
if (!paused) {
ratMove = 0;
}
}

但是,这不断抛出错误:由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“Layer#ccTouchBegan 覆盖我”

我可以在网上找到此错误的唯一原因是如果您没有包含 ccTouchBegan 函数,但是我是这样,还有其他人知道出现此错误的任何其他原因吗?

最佳答案

将CCLayer子类化为HUD层,然后在其中实现这些方法。

您将 HUD 图层添加为目标委托(delegate),那么它必须至少实现 ccTouchBegan:withEvent: 方法。如果您希望您的 HUD 成为目标委托(delegate),请创建 CCLayer 子类并实现目标触摸委托(delegate)协议(protocol)中的方法。

关于ios - Cocos2d处理触摸多层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com