Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ataugeron/SpriteKit-Spring
SpriteKit API reproducing UIView's spring animations with SKAction
https://github.com/ataugeron/SpriteKit-Spring
Last synced: about 1 month ago
JSON representation
SpriteKit API reproducing UIView's spring animations with SKAction
- Host: GitHub
- URL: https://github.com/ataugeron/SpriteKit-Spring
- Owner: ataugeron
- License: apache-2.0
- Created: 2014-09-15T12:59:40.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2020-11-08T03:33:38.000Z (about 4 years ago)
- Last Synced: 2024-10-02T20:15:59.252Z (2 months ago)
- Language: Swift
- Size: 72.3 KB
- Stars: 249
- Watchers: 7
- Forks: 32
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift - SpriteKit+Spring - SpriteKit API reproducing UIView's spring animations with SKAction ` 📝 8 months ago ` (Utility [🔝](#readme))
README
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](SpriteKit-Spring.swift) in your project.
### iOS 8
If you support iOS 8 only, you can install SpriteKit-Spring as a framework with [CocoaPods](https://cocoapods.org) (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:
```swift
import SpriteKit_Spring
```
#### Objective-C:
```objective-c
#import
```## Usage
In iOS 7, Apple introduced spring animations in UIKit by adding a new animation method on UIView (see [WWDC video](https://developer.apple.com/videos/wwdc/2014/#221) and [UIView documentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/clm/UIView/animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:)).
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
```swift
let move = SKAction.moveByX(0, y: 200,
duration: 5, delay: 5,
usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
node.runAction(move)
```![Move](https://ataugeron.github.io/SpriteKit-Spring/bounce_1.gif)
### Scale
```swift
let scale = SKAction.scaleXTo(2, y: 0.5,
duration: 5, delay: 5,
usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
node.runAction(scale)
```![Scale](https://ataugeron.github.io/SpriteKit-Spring/bounce_2.gif)
### Rotate
```swift
let rotate = SKAction.rotateByAngle(CGFloat(M_PI/2),
duration: 5, delay: 5,
usingSpringWithDamping: 0.2, initialSpringVelocity: 0)
node.runAction(rotate)
```![Rotate](https://ataugeron.github.io/SpriteKit-Spring/bounce_3.gif)
## 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
- [Alexis Taugeron](http://alexistaugeron.com) ([@ataugeron](https://twitter.com/ataugeron))
## License
SpriteKit-Spring is released under the Apache 2 license. See LICENSE for details.