user3423384
user3423384

Reputation: 707

Change a SKSpriteNode Image

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

Answers (3)

Oscar Falmer
Oscar Falmer

Reputation: 1811

Swift version:

mover.texture = SKTexture.textureWithImageNamed("explode")

Swift version 3.0:

mover.texture = SKTexture(imageNamed: "explode")

Upvotes: 8

Callum Boddy
Callum Boddy

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

sangony
sangony

Reputation: 11696

You have to change the texture property of your mover object.

Something like this:

mover.texture = [SKTexture textureWithImageNamed:@"explode"];

Upvotes: 31

Related Questions