2014-04-01 25 views
6

Używam metody repeatActionForever od SKAction, aby zmienić kolor SKShapeNode. Oto mój kod:SKAction zmiana koloru SKShapeNode

SKShapeNode *ship = [SKShapeNode node]; 
[ship setPath:CGPathCreateWithRoundedRect(CGRectMake(-15, -15, 40, 17), 6.25, 6.25, nil)]; 
ship.fillColor = [SKColor redColor]; 
ship.glowWidth = 3; 

[ship runAction:[SKAction repeatActionForever:[SKAction sequence:@[ 
[SKAction colorizeWithColor:[SKColor blueColor] colorBlendFactor:1.0 duration:0.5], 
[SKAction waitForDuration:0.3],[SKAction colorizeWithColorBlendFactor:1.0 duration:0.5], 
[SKAction colorizeWithColor:[SKColor redColor] colorBlendFactor:1.0 duration:0.5], 
[SKAction waitForDuration:0.3], 
[SKAction colorizeWithColorBlendFactor:1.0 duration:0.5], 
[SKAction waitForDuration:0.3]]]]]; 
return ship; //because it's a method 

To wygląda prawo do mnie, ale statek nie zmienia koloru. Co robię źle, dzięki.

Odpowiedz

4

W przeciwieństwie do SKSpriteNode, SKShapeNode nie ma właściwości color. Więc twoje działanie colorizeWithColor: nie będzie działać.

Spójrz na to stanowisko, w jaki sposób animować fillColor i strokeColor: SKShapeNode - Animate color change