gpt4 book ai didi

iphone - 在cocos2d中检测触摸*屏幕上的任何地方*?

转载 作者:行者123 更新时间:2023-12-03 21:13:32 25 4
gpt4 key购买 nike

我真的很抱歉,我意识到有几个关于 cocos2d 触摸检测的问题(包括 this 答案对我有很大帮助),但我就是无法让其中任何一个工作。我会评论我链接的答案,而不是问我自己的问题,但我没有足够的代表来发表评论。

我想做的就是在用户点击屏幕上的任意位置时立即停止动画。

这是我到目前为止的代码:

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Touches Began");
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[Director sharedDirector] convertCoordinate: location];

CGRect mySurface = (CGRectMake(100, 100, 320, 480));
if(CGRectContainsPoint(mySurface, location)) {
NSLog(@"Event Handled");
return kEventHandled;
[[Director sharedDirector] stopAnimation];
}
return kEventIgnored;
NSLog(@"Event Ignored");

}

我已经在图层文件和cocosNode 文件,以及许多其他东西。什么都没发生。日志中没有显示任何内容,动画继续以愉快的方式进行。我做错了什么?

最佳答案

主要问题是你有 [[Director sharedDirector] stopAnimation]; return kEventHandled;之后而不是在它之前。 return一旦被调用就退出该函数,因此它之后的任何内容都将永远不会到达。

我面前没有我的Mac来检查你的代码的其余部分,但它看起来很好,所以我猜这是主要问题。如果您甚至没有看到 NSLog(@"Touches Began");那么你需要确保你在 CocosNode 中执行此操作延伸Layer

另一个有用的东西(一旦你看到触摸)是 NSStringFromCGPoint函数,它允许您轻松显示和调试 CGPoint 中的值,所以你可以这样做:

NSLog(@"This layer was touched at %@", NSStringFromCGPoint(location));

关于iphone - 在cocos2d中检测触摸*屏幕上的任何地方*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1174346/

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