我已经研究了如何在cocos2d v3中使用多个触摸,我意识到有必要这样做
self.multipleTouchEnabled = YES;
为了获得多次触摸。我已经这样做了,我只是不确定如何一次访问所有触摸的位置。在你可以隔离NSSet之类的东西并获得触摸1之前,触摸2等;但是现在我不确定如何做到这一点。
如果它有帮助,我正在尝试进行捏/缩放,我知道该怎么做,但我不知道如何访问触摸的位置。
我知道只需触摸一下就可以轻松获得该位置,但对于两者而言,我都没有办法实现这一目标。对不起,漫无边际的基本相同!
我还听说你可以有一个计数器变量来查看当时发生了多少次触摸,但这似乎效率低下,你仍然无法获得所有触摸的位置。
在此先感谢,我非常感谢您的帮助。
答案 0 :(得分:1)
也许我的方式不是最好的方式,但它有效。 只需在存储触摸的位置创建一个NSMutableArray,然后就可以获得两个位置。
NSMutableArray *array = [[NSMutableArray alloc]init];
在touchBegan和touchEnded方法中:
-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
[array addObject:touch]; //add new touch to array
}
-(void) touchEnded:(UITouch *)touch withEvent:(UIEvent *)event{
[array removeObject:touch]; //remove touch that ended
}
在你的方法中获得职位:
//EXAMPLE.
if (array.count > 1){ //check that there are two touches
CGPoint point1 = [array[0] locationInNode:self];
CGPoint point2 = [array[1] locationInNode:self];
}else{ //I suppose there are ONE or TWO touches, not more.
CGPoint point1 = [array[0] locationInNode:self];
}
我认为这是正确的。如果您有任何问题,请告诉我。