-1

私は Cocos2d の初心者で、コイン スプライトが画面から消えたらすぐに 5 秒の遅延で表示したいと考えていました。これは、メインのゲームプレイ レイヤーで 7 コインを連続して追加するように記述したものです。

- (void)coinSidewaysRowOne { 
        if (coinSide1 == FALSE)
        {
            coinSide1 = TRUE;
            NSLog(@"coinSide1 = TRUE");
            int originalX = 500;
            for(int i = 0; i < 8; i++)
            {
                CCSprite *coinHorizontal = [CCSprite spriteWithFile:@"bubble.png"];
                coinHorizontal.position = ccp(originalX, 150);
                originalX += 20;

                [self addChild:coinHorizontal];
                [coinArray addObject:coinHorizontal];
            }
        }
    }

そして、updateRunning メソッドにこれを追加したので、コインが画面の外に出現すると、左に移動して消えます。

for (CCSprite *coin in coinArray)
    {
        // apply background scroll speed
        float backgroundScrollSpeedX = [[GameMechanics sharedGameMechanics] backGroundScrollSpeedX];
        float xSpeed = 1.09 * backgroundScrollSpeedX;

        // move the coin until it leaves the left edge of the screen
        if (coin.position.x > (coin.contentSize.width * (-1)))
        {
            coin.position = ccp(coin.position.x - (xSpeed*delta), coin.position.y);
        }
        **// This is where I am trying to make the CCSprite coin reappear** 
        else
        {
            [self performSelector:@selector(showSpriteAgain:) withObject:coin afterDelay:5.0f];
        }
    }

そして、このメソッドを追加しました:

-(void) showSpriteAgain:(CCSprite *)coin{
    CGSize screenSize = [[CCDirector sharedDirector] winSize];
    coin.position = ccp(coin.position.x-screenSize.width,coin.position.y);
}

しかし、コインは 5 秒経ってもまだ再表示されません。私は何か間違ったことをしていますか?ありがとう。

4

1 に答える 1

1

showSpriteAgain 関数の変更:

-(void) showSpriteAgain:(CCSprite *)coin{
    CGSize screenSize = [[CCDirector sharedDirector] winSize];
    coin.position = ccp(coin.position.x + screenSize.width,coin.position.y);
}

私がしたことは、右から左に移動したので、右に戻す必要があるため、screennSize.width を追加する必要があります。

于 2013-07-19T06:07:24.370 に答える