Kit Sprite - Adicione nós Sprite aleatórios à cena com Switch Case

Eu tenho o código a seguir para criar objetos aleatórios e adicioná-los à cena. No final, o método é repetido após um atraso aleatório.

-(void)createObjects {

// Create random start point
float randomStartPoint = arc4random_uniform(4) * 64 + 32;
CGPoint startPoint = CGPointMake(self.size.width + 50, randomStartPoint);

// Create random object and add to scene
switch (arc4random_uniform(2)) {
    case 0:
    {
        SKSpriteNode *crate = [SKSpriteNode spriteNodeWithImageNamed: @"crate"];

        crate.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:crate.frame.size];
        crate.physicsBody.dynamic = YES;
        crate.physicsBody.affectedByGravity = NO;
        crate.physicsBody.categoryBitMask = objectCategory;
        crate.physicsBody.collisionBitMask = 0;
        crate.physicsBody.contactTestBitMask = playerCategory;

        crate.position = startPoint;
        crate.name = @"object";
        crate.zPosition = 20;

        [self addChild:crate];
        break;
    }

    case 1:
    {
        SKSpriteNode *cactus = [SKSpriteNode spriteNodeWithImageNamed: @"cactus"];

        cactus.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:cactus.frame.size];
        cactus.physicsBody.dynamic = YES;
        cactus.physicsBody.affectedByGravity = NO;
        cactus.physicsBody.categoryBitMask = objectCategory;
        cactus.physicsBody.collisionBitMask = 0;
        cactus.physicsBody.contactTestBitMask = playerCategory;

        cactus.position = startPoint;
        cactus.name = @"object";
        cactus.zPosition = 20;

        [self addChild:cactus];
        break;
    }

    default:
        break;
}

// After adding child, call same method at random delay
float randomNum = arc4random_uniform(4) * 0.4 + 0.25;
[self performSelector:@selector(createObjects) withObject:nil afterDelay:randomNum];
}

Na realidade, tenho muitos mais casos e muito do mesmo código é repetido, já que todo Nó do Sprite tem as mesmas configurações. Existe uma maneira de criar um nó de sprite uma vez e, em todos os casos, definir uma imagem diferente para o nó e adicioná-la à cena?

questionAnswers(1)

yourAnswerToTheQuestion