Reputation: 707
i'm new to sprite Kit and having an issue with changing a current SKSpriteNode image.
My spriteNode looks like this
mover = [SKSpriteNode spriteNodeWithTexture:Texture1];
[mover setScale:1.0];
[self addChild:mover];
then i have this method that should change the mover image, but it is not. What am i doing wrong?
- (void)didBeginContact:(SKPhysicsContact *)contact {
if (contact.bodyA.categoryBitMask == worldCategory) {
SKTexture* explodeTexture1 = [SKTexture textureWithImageNamed:@"explode"];
explodeTexture1.filteringMode = SKTextureFilteringNearest;
mover = [SKSpriteNode spriteNodeWithTexture:explodeTexture1];
}
}
Upvotes: 21
Views: 14547
Reputation: 1811
Swift version:
mover.texture = SKTexture.textureWithImageNamed("explode")
Swift version 3.0:
mover.texture = SKTexture(imageNamed: "explode")
Upvotes: 8
Reputation: 407
This method is actually re-creating the the mover object.
mover = [SKSpriteNode spriteNodeWithTexture:explodeTexture1];
You just need to update the texture with:
mover.texture = explodeTexture1;
Upvotes: 8
Reputation: 11696
You have to change the texture property of your mover object.
Something like this:
mover.texture = [SKTexture textureWithImageNamed:@"explode"];
Upvotes: 31