我有一个带有给定纹理的精灵,使用:
joyStickRight = [SKSpriteNode spriteNodeWithImageNamed:@"joyStick.png"];
我想在用户触摸并保持精灵时更改它。当我检测到触摸时,我尝试通过使用不同的图像调用相同的函数来更改精灵纹理:
joyStickRight = [SKSpriteNode spriteNodeWithImageNamed:@"joyStick_rollOver.png"];
但这似乎不起作用。什么都没有改变。
这适用于iPad应用程序。我正在使用SKSpriteNode
s。
答案 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];
我仍然希望这不是唯一的解决方案,并且还想知道为什么当我运行它时它为什么不起作用!!!