2014-06-29 27 views
0

我想用cocos2d製作iOS遊戲時淡入一個精靈。目前,精靈產卵,它的聲明如下所示:淡入淡出的CCSprite

@implementation GameScene 
{ 
    CCSprite *_shapeSprite; 
} 

,然後我有一個出現的addShape:方法中

- (void)onEnter 
{ 
    [super onEnter]; 
    [self schedule:@selector(addShape:) interval:0.2]; 
} 

不過每0.2秒,我想使它所以當一個的形狀被挖掘,然後只有被挖掘的那個消失。到目前爲止,我有這樣的:

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    _shapeSprite.opacity = 0; 
} 

但是簡單地刪除多數民衆贊成催生了最後的形狀,而不是多數民衆贊成拍了拍一個 - 可以有人請點我在這裏向正確的方向嗎?

+0

當觸摸屏幕時,將所有精靈存儲在數組中,然後比較觸摸的位置是否在任何精靈的邊界框內。如果是,那麼這個精靈會觸及並做任何你想要的。 – Guru

回答

0

試試這個,一定要有self.userInteractionEnabled = YES; in init

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { 
    CGPoint touchLoc = [touch locationInNode:self]; 

    // detect Sprite 
    for (CCSprite *mySprite in self.children) { 

     float distance = pow(mySprite.position.x - touchLoc.x, 2) + pow(mySprite.position.y - touchLoc.y, 2); 
     distance = sqrt(distance); 
     if (distance <= 60) { //60 is radius from sprite center, change it 
      // do something with this sprite 
      mySprite.opacity = 0; 

     } 
    } 
} 
+0

似乎沒有辦法,精靈仍然不透明。另外,Xcode會拋出一個有關控件如何到達非void函數結尾的警告? –

+0

你使用的是v2還是v3版本的cocos2d? –

+0

Xcode 5.1.1上的第3版 –