1

我有一个给定纹理的精灵,使用:

joyStickRight = [SKSpriteNode spriteNodeWithImageNamed:@"joyStick.png"];

当用户触摸并持有精灵时,我想改变它。当我检测到触摸时,我尝试通过使用不同的图像调用相同的函数来更改精灵纹理:

joyStickRight = [SKSpriteNode spriteNodeWithImageNamed:@"joyStick_rollOver.png"];

但这似乎不起作用。没有什么变化。

这适用于 iPad 应用程序。我正在用SKSpriteNodes 创建屏幕上的元素。

4

2 回答 2

0

我发现更改纹理的唯一方法是通过如下操作交换它们:

SKTexture *texture1 = [SKTexture textureWithImageNamed:@"texture1"];
SKTexture *texture2 = [SKTexture textureWithImageNamed:@"texture2"];


SKAction *swapTextures = [SKAction repeatAction:[SKAction animateWithTextures:@[texture1,texture2] timePerFrame:0.1] count:3];

[node (in your case joyStickRight) runAction:swapTextures];

我仍然希望这不是唯一的解决方案,也想知道为什么我运行一次它就不起作用!!!

于 2014-02-12T12:18:29.547 回答
0

这可能与变量范围有关。我猜您正在尝试修改“joyStickRight”SKSPriteNode 的另一个实例。这第二个实例不会被添加到场景中,因此不会产生任何效果。

于 2013-10-20T10:21:59.273 回答