Sprite Kit という新しい API を使用して iOS7 ゲームを開発しています。SKSpriteNode の画像/テクスチャを水平方向に回転させたいです。最初に画像をミラーリングしてから、SKTexture を作成し、最後に SKSpriteNode に適用してみましたが、うまくいきません。これを行う方法はありますか?または、別の画像にする必要がありますか?
13459 次
4 に答える
0
これを右利きまたは左利きのスプライトに使用します。
ここからいくつかの助けを借りて 、Objective-C でのフレームの水平反転
BOOL leftHanded = YES;
SKSpriteNode *sprite;
if (leftHanded) { //my textures point east, so I flip vertically
SKTexture *texture = [SKTexture textureWithImageNamed:@"figure-step0"];
CIFilter *filter = [CIFilter filterWithName:@"CIAffineTransform"];
[filter setValue:[CIImage imageWithCGImage:[texture CGImage]] forKey:kCIInputImageKey];
#ifdef IOS_BLOCK //set these up with defines
CGAffineTransform flipTransform = CGAffineTransformMakeScale(1.0f, -1.0f); // vert
[filter setValue:[NSValue valueWithBytes:&flipTransform
objCType:@encode(CGAffineTransform)]
forKey:@"inputTransform"];
#else //OSX_BLOCK
NSAffineTransform* flipTransform = [NSAffineTransform transform];
[flipTransform scaleXBy:1.0f yBy: -1.0f]; // vert
[filter setValue:flipTransform forKey:@"inputTransform"];
#endif
sprite = [SKSpriteNode spriteNodeWithTexture:
[texture textureByApplyingCIFilter:filter]];
} else {
sprite = [SKSpriteNode spriteNodeWithImageNamed:@"figure-step0"];
}
アニメーション フレームについても同様に行うことができます。iOS または OS X で動作します。
于 2015-08-26T23:38:25.497 に答える