• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
    Swift
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SpriteKit API reproducing UIView's spring animations with SKAction

SpriteKit-Spring

SpriteKit-Spring is a set of extensions to perform spring animations with SpriteKit.

Installation

iOS 7

If you need to support iOS 7, you can just drop SpriteKit-Spring.swift in your project.

iOS 8

If you support iOS 8 only, you can install SpriteKit-Spring as a framework with CocoaPods (version 0.36 or above) by adding the following lines to your Podfile:

use_frameworks!

pod 'SpriteKit-Spring'

You then need to import SpriteKit-Spring wherever you want to use it:

Swift:

import SpriteKit_Spring

Objective-C:

#import <SpriteKit_Spring/SpriteKit_Spring-Swift.h>

Usage

In iOS 7, Apple introduced spring animations in UIKit by adding a new animation method on UIView (see WWDC video and UIView documentation).

This library replicates this feature by adding a spring variant to most factory methods of SKAction. The parameters usingSpringWithDamping: and initialSpringVelocity: have the same meaning as their UIKit counterpart. See below for examples.

Examples

Move

let move = SKAction.moveByX(0, y: 200, 
  duration: 5, delay: 5,
  usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
  
node.runAction(move)

Move

Scale

let scale = SKAction.scaleXTo(2, y: 0.5,
  duration: 5, delay: 5,
  usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
  
node.runAction(scale)

Scale

Rotate

let rotate = SKAction.rotateByAngle(CGFloat(M_PI/2),
  duration: 5, delay: 5,
  usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
  
node.runAction(rotate)

Rotate

Notes

  • Because they use customActionWithDuration:actionBlock:, none of these actions is reversible (the reverse action performs the same animation).
  • All these factory methods are based on the lower level animateKeyPath:byValue:duration:delay:usingSpringWithDamping:initialSpringVelocity: and animateKeyPath:toValue:duration:delay:usingSpringWithDamping:initialSpringVelocity: methods, which can animate any CGFloat key path. If you have a SKNode subclass with a fancy CGFloat property that you'd like to animate, feel free to use these methods!

Creator

License

SpriteKit-Spring is released under the Apache 2 license. See LICENSE for details.