如何在正在运行的动作中禁用触摸检测,因为如果玩家在动作中单击并单击,我不希望角色像超人一样在天空中飞行,如果他们继续点击,角色将永远不会降落。 我发现方法“isDone”,是否与此方法有关? 玩家点击 - >行动(不能在行动中点击) - >动作结束 - >再次点击..... 这就是我想要的东西〜
答案 0 :(得分:48)
这是您问题的最佳答案:
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
答案 1 :(得分:45)
在视图中停用用户互动,直到操作完成,然后再次启用。
禁用触控
[self.view setUserInteractionEnabled:NO];
启用触控
[self.view setUserInteractionEnabled:YES];
请尝试下次再简洁一点。
答案 2 :(得分:2)
在Swift 2.2中
self.view.userInteractionEnabled = false
答案 3 :(得分:1)
只是假设你在谈论Cocos2D中的特定Action类。如果这是真的,那么你应该知道每个Action都有一个“isDone”Bool你可以检查它是否已经完成。让我知道,如果这就是你所要求的,我会发布一个例子,但是你很可能会谈论别的东西,因为你的措辞太混乱了;)
答案 4 :(得分:1)
Swift 3.0
self.view.isUserInteractionEnabled = false
答案 5 :(得分:0)
你总是可以在你想要“禁用”点击输入的区域顶部放置一个透明的UIView,让它听取点击,让它忽略它们。如果希望再次收听输入,请删除UIView(或隐藏它)。
答案 6 :(得分:0)
为什么不使用某种(简单版本)布尔值来记住ieInAction = true并且在操作完成后isInAction = false ...
所以当有人点击时,你会使用像
这样的东西if (!isInAction) {
isInAction=true;
try {
doYourAction;
} catch {
...
} finally {
isInAction=false;
}
}
//代码是某种伪代码,因为我还没有为iPhone编程,只是想象我的意思。
答案 7 :(得分:0)
也许我不明白你的问题,但这是你在寻找什么?
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[Superman Fly];
self.isTouchEnabled = NO;
}
- (void)SupermanLanded{
self.isTouchEnabled = YES;
}