更改SKSpriteNode图像

use*_*384 17 objective-c ios sprite-kit

我是精灵套件的新手,并且在更改当前的SKSpriteNode图像方面存在问题.

我的spriteNode看起来像这样

mover = [SKSpriteNode spriteNodeWithTexture:Texture1];
[mover setScale:1.0];
[self addChild:mover];
Run Code Online (Sandbox Code Playgroud)

那么我有这种方法应该改变移动者的形象,但事实并非如此.我究竟做错了什么?

- (void)didBeginContact:(SKPhysicsContact *)contact {
    if (contact.bodyA.categoryBitMask == worldCategory) {
        SKTexture* explodeTexture1 = [SKTexture textureWithImageNamed:@"explode"];
        explodeTexture1.filteringMode = SKTextureFilteringNearest;

        mover = [SKSpriteNode spriteNodeWithTexture:explodeTexture1];
    }
}
Run Code Online (Sandbox Code Playgroud)

san*_*ony 28

您必须更改移动器对象的纹理属性.

像这样的东西:

mover.texture = [SKTexture textureWithImageNamed:@"explode"];
Run Code Online (Sandbox Code Playgroud)


小智 8

此方法实际上是重新创建移动器对象.

mover = [SKSpriteNode spriteNodeWithTexture:explodeTexture1];
Run Code Online (Sandbox Code Playgroud)

您只需要使用以下命令更新纹理:

mover.texture = explodeTexture1;
Run Code Online (Sandbox Code Playgroud)


Osc*_*car 5

迅捷版:

mover.texture = SKTexture.textureWithImageNamed("explode")
Run Code Online (Sandbox Code Playgroud)

斯威夫特 3.0 版:

mover.texture = SKTexture(imageNamed: "explode")
Run Code Online (Sandbox Code Playgroud)