【发布时间】:2009-05-19 02:28:32
【问题描述】:
在 cocos2d 中如何检测图像上的触摸?我遇到了很多麻烦,所以提前谢谢!
【问题讨论】:
标签: iphone image cocos2d-iphone
在 cocos2d 中如何检测图像上的触摸?我遇到了很多麻烦,所以提前谢谢!
【问题讨论】:
标签: iphone image cocos2d-iphone
您在 Layer 类中实现 ccTouchesBegan/Ended/Moved 方法,然后根据您希望检测触摸的节点容器检查触摸位置。
例如:
-(BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch touch = [touches anyObject];
CGPoint location = [[Director sharedDirector] convertCoordinate: [touch locationInView: [touch view]]];
CGRect mySurface = CGRectMake(100, 100, 50, 50);
if(CGRectContainsPoint(mySurface)) {
// do something
return kEventHandled;
}
return kEventIgnored;
}
现在,Cocos2D 0.8(现在处于活动测试版)中的所有变化都通过使用“Touch Delegates”和“Touches Test”中的示例(从我刚刚查看的源代码来看,这似乎是一个乒乓球游戏)结束)。
我不确定为什么 Corey 说要使用 UIKit 控件来检测触摸,因为 Cocos2D 有自己的处理方式。
只有图层可以接收触摸 - 不建议您为每个可触摸的“游戏对象”(即玩家和对象)使用图层...
【讨论】:
您需要使用标准 UIKit 类在游戏顶部过度隐藏触摸表面。
然后您通过这些对象检测和解释触摸并将控件传递给您的游戏。
如果您有更具体的问题,可以提供更多信息或提出其他问题。
【讨论】:
这篇文章会给你答案 cocos2D for iPhone 和触摸检测的问题 Problem with cocos2D for iPhone and touch detection
【讨论】: