27

Sprite Kit という新しい API を使用して iOS7 ゲームを開発しています。SKSpriteNode の画像/テクスチャを水平方向に回転させたいです。最初に画像をミラーリングしてから、SKTexture を作成し、最後に SKSpriteNode に適用してみましたが、うまくいきません。これを行う方法はありますか?または、別の画像にする必要がありますか?

4

4 に答える 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 に答える