我应该在cocos2d中使用来自NSSet的Touches还是来自UIEvent的Touches

时间:2011-12-28 02:22:41

标签: objective-c cocos2d-iphone

我注意到有很多不同的处理输入触摸的方法。 (多点触控)

功能如

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

我应该直接使用touches(第一个参数)还是应该使用[event allTouches](第二个参数)

我注意到有些人甚至使用

UITouch *touch = [touches anyObject];

我从Apple文档检查,anyObject只是从NSSet返回一个对象,是不是有点随机?如果你正在进行多点触控,那么我认为没有任何用处,因为每次触摸的id都很重要。

我也知道[event allTouches]实际上返回了所有窗口中的所有触摸,但是当我们在cocos2d中进行操作时,我认为大部分时间我们只处理一个窗口?

所以说我的游戏一次只有1个视图(openGL视图),所以我应该使用哪些视图? 第一个参数触及或[event allTouches]

希望有人可以解决这个问题:)

1 个答案:

答案 0 :(得分:1)

如果您想使用多点触控,您应该使用此功能:

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

如果您想使用一次触摸,您应该使用此功能:

- (void)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event

如果您使用多点触控并且需要第一次触摸,则应使用NSSet触摸的第一个参数,对于第二次触摸,您应该使用第二个参数等。