SKSpriteNodeがあり、ユーザーが画面に触れたときにそのテクスチャを変更したいと思います。しかし、そうする方法を理解することはできません。
ヘッドの作成と追加。 (ヘッダーで宣言されています)。
head = [SKSpriteNode spriteNodeWithImageNamed:[NSString stringWithFormat:@"%@",face]];
head.position = CGPointMake(size.width / 2, size.height / 2);
[self addChild:head];
タッチを検出すると以下が実行されますが、SKSpritenodeへの適用方法がわかりません!
SKAction* changeFace = [SKAction setTexture:[SKTexture textureWithImageNamed:[NSString stringWithFormat:@"%@",face]]];
[self runAction:changeFace];
以下も試してみましたが、うまくいかないようです...
head.texture = [SKTexture textureWithImageNamed:[NSString stringWithFormat:@"%@",face]];
誰かが私を正しい方向に向けることができることを願っています!
シーン(またはスプライト以外のオブジェクト)でアクションを実行しようとしているようです。ただし、2番目のコードは機能するはずですが、SKActionを使用して代わりにこれを試してください。
[head runAction:changeFace];
私はそれをここで動作させています、以下のコードを見てください:
1-SKSpriteNodeを作成します
self.ninja = [SKSpriteNode spriteNodeWithImageNamed:@"ninja1"];
self.ninja.position = CGPointMake(self.ninja.size.width/2, self.frame.size.height/2);
[self addChild:self.ninja];
2-テクスチャを変更します。
self.ninja.texture = [SKTexture textureWithImageNamed:@"ninja2"];
Obs:touchesBeganイベントでテクスチャを変更しますが、これは任意の方法で機能するはずです。
これも体験して、風合いを変えることができましたが、風合いは伸びています。これは何が原因ですか?
これを試して
SKAction*animation=[SKAction animateWithTextures:actions timePerFrame:0.1 resize:NO restore:YES];