试图在cocos2d中将一系列精灵添加到屏幕上?

时间:2013-04-13 02:49:40

标签: arrays cocos2d-iphone sprite ccsprite

我正在尝试在屏幕上添加一系列浆果,让它们向左移动。它引用了包括级别的plist。我从Ray Winderlich太空游戏教程改编了这个。 屏幕上没有出现任何精灵。 :/

-(void)updatePinkBerries:(ccTime)dt
{
    CGSize winSize = [CCDirector sharedDirector].winSize;

//    if (levelManager.gameState != GameStateNormal)
//        return;
//    
//    if (![levelManager boolForProp:@"SpawnAsteroids"])
//        return;

    double curTime = CACurrentMediaTime();

    if (curTime > nextPinkBerrySpawn)
    {
        // Figure out the next time to spawn a berry
        float spawnSecsLow = [levelManager floatForProp:@"ASpawnSecsLow"];
        float spawnSecsHigh = [levelManager floatForProp:@"ASpawnSecsHigh"];

        float randSecs = randomValueBetween(spawnSecsLow, spawnSecsHigh);
        nextPinkBerrySpawn = randSecs + curTime;

        float randY = randomValueBetween(0.0, winSize.height);

        float moveDurationLow = [levelManager floatForProp:@"AMoveDurationLow"];
        float moveDurationHigh = [levelManager floatForProp:@"AMoveDurationHigh"];
        float randDuration = randomValueBetween(moveDurationLow, moveDurationHigh);

        // Create a new berry sprite
        CCSprite *pinkBerry = [pinkBerries nextSprite];
        [pinkBerry stopAllActions];
        pinkBerry.visible = YES;

        // Set its position to be offscreen to the right
        pinkBerry.position = ccp(winSize.width + pinkBerry.contentSize.width/2, randY);

        // Move it offscreen to the left, and when it's done, call removeNode
        [pinkBerry runAction:
         [CCSequence actions:
          [CCMoveBy actionWithDuration:randDuration position:ccp(-winSize.width- pinkBerry.contentSize.width, 0)],
          [CCCallFuncN actionWithTarget:self selector:@selector(invisNode:)], nil]];
    }
}

1 个答案:

答案 0 :(得分:0)

检查nextPinkBerrySpawn是否应该是它应该是什么。如果curTime不大于nextPinkBerrySpawn那么它就不会产生任何东西。来自SGSK的代码具有很强的适应性,如果一切设置正确,您应该可以正常运行