2016-01-21 91 views
0

我有一个或多个存储在数组中的精灵。我想要的是用多个手指在屏幕上拖动这些精灵。即(多点触摸) 任何人都可以告诉我该怎么做?使用多点触控处理CCSprites

任何帮助将不胜感激..

这里是我的代码:

-(void)touchBegan:(CCTouch *)touch withEvent:(CCTouchEvent *)event 
{ 

    CGPoint location = [touch locationInNode:self]; 

    selectedSprite.paused = YES; 

    [self selectSpriteFromTouch:location]; 
    //this is where i get sprite selected from i.e selectedSprite from array 


} 
-(void)touchMoved:(CCTouch *)touch withEvent:(CCTouchEvent *)event 
{ 

    selectedSprite.position = [touch locationInNode:self]; 


    } 

-(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event 
{ 

    selectedSprite.paused = NO; 
    selectedSprite.position = [touch locationInNode:self]; 

    selectedSprite = nil; 



    } 


    -(void)touchCancelled:(CCTouch *)touch withEvent:(CCTouchEvent *)event 
    { 

    selectedSprite.paused = NO; 
    selectedSprite = nil; 


    } 

回答

0

如果我理解正确的话,你想讲两个手指在屏幕上,每移动1个精灵?我想你有一个数组中的图像,以获得每个触摸的位置,如果每个触摸都在一个精灵上,那么你知道哪个精灵是哪个触摸。

CGPoint fingerOne = [event.allTouches.allValues[0] locationInWorld]; 
CGPoint fingerTwo = [event.allTouches.allValues[1] locationInWorld]; 

如果子画面在索引0,通过fingerOne触摸,则可以通过将相同量的移动时fingerOne索引1处

动议同样地,对于fingerTwo和子画面