Horizontally mirror a SKSpriteNode texture Horizontally mirror a SKSpriteNode texture swift swift

Horizontally mirror a SKSpriteNode texture


If you're just trying to flip the sprite along an axis, you can do something like this:

sprite.xScale = -1.0;


You can use this code to flip among x-axis:

spriteNode.xScale = spriteNode.xScale * -1;

but be careful you can lose some of physicsbody's property, I highly suggest u to use xScale in this way:

spriteNodeBody = [SKNode node];spriteNodeBody.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:spriteNode.size];spriteNodeBody.physicsBody.categoryBitMask = CNPhysicsCategoryPlayer;spriteNodeBody.physicsBody.collisionBitMask = CNPhysicsCategoryBall;[spriteNodeBody addChild:spriteNode];[self addChild:spriteNodeBody];

And now you can safely use:

    spriteNode.xScale = spriteNode.xScale * -1;


I use this for my rightHanded or leftHanded sprites:

with some help from hereHorizontal Flip of a frame in 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"];}

You can do the same for animation frames likewise. Works for iOS or OS X.