1

在 cocos2d 中,您如何检测图像上的触摸?我在这方面遇到了很多麻烦,所以提前谢谢!

4

3 回答 3

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(现在处于活动测试阶段)中的所有变化都通过使用“Touch Delegates”,并且可以在“Touches Test”中看到示例(从我刚刚查看的源代码来看,这似乎是一个乒乓球游戏)。

我不确定为什么 Corey 说要使用 UIKit 控件来检测触摸,因为 Cocos2D 有自己的处理方式。

只有图层可以接收触摸 - 不建议您为每个可触摸的“游戏对象”(即玩家和对象)使用图层......

于 2009-06-22T01:20:43.177 回答
0

您需要使用标准 UIKit 类在游戏顶部过度隐藏触摸表面。

然后,您通过这些对象检测和解释触摸,并将控件传递给您的游戏。

如果您有更具体的问题,您可以提供更多信息或提出其他问题。

于 2009-05-19T07:31:34.057 回答
0

这篇文章将为您解答 关于 cocos2D for iPhone 和触摸检测的 问题 关于 cocos2D for iPhone 和触摸检测的问题

于 2009-06-20T20:29:09.277 回答