在cocos2d中你会如何检测到图像上的触摸?我有很多麻烦,所以提前感谢!
答案 0 :(得分:2)
在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(现在处于活动测试阶段)的所有变化,并且可以在“触摸测试”中看到(这看起来像是我刚看过的来源的乒乓球游戏结束)。
我不确定为什么Corey会说使用UIKit控件来检测触摸,因为Cocos2D有自己的处理方式。
只有图层可以接收触摸 - 不建议您为每个可触摸的“游戏对象”(即玩家和对象)使用图层...
答案 1 :(得分:0)
您需要使用标准UIKit类在游戏顶部过度隐形触摸表面。
然后,您可以检测并解释这些对象的触摸,并将控件传递给您的游戏。
如果您有更具体的问题,可以提供更多信息或提出其他问题。
答案 2 :(得分:0)
这篇文章会给你答案 适用于iPhone和触摸检测的cocos2D问题 Problem with cocos2D for iPhone and touch detection