更改" MouseOver"的SK纹理在Xcode 5.0中

时间:2013-10-18 14:05:57

标签: ios textures xcode5 sprite-kit skspritenode

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

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

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

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

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

这适用于iPad应用程序。我正在使用SKSpriteNode s。

创建屏幕上的元素

2 个答案:

答案 0 :(得分:0)

这可能与变量范围有关。我猜你正试图修改'joyStickRight'SKSPriteNode的另一个实例。第二个实例不会被添加到场景中,因此不会产生任何影响。

答案 1 :(得分: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];

我仍然希望这不是唯一的解决方案,并且还想知道为什么当我运行它时它为什么不起作用!!!