---
title: Action Initializers
framework: spritekit
role: collectionGroup
role_heading: API Collection
path: spritekit/action-initializers
---

# Action Initializers

Use these functions to create actions.

## Overview

Overview Most actions implement specific predefined animations that are done for you by SpriteKit. If your animation needs fall outside of the suite provided here, then you should: Consider using the methods in Creating Custom Actions below (never subclass SKAction) Consider the advice in Drive Game Logic Choose an Initializer for the Property You Want to Alter Most actions allow you to change a node’s properties and some actions specifically apply to specific nodes, like SKSpriteNode’s actions for animating its color or texture. Here are the most common animated properties: Changing a node’s position and zRotation Changing a node’s size or scaling properties Changing a node’s visibility or making it translucent Changing a sprite node’s contents so that it animates through a series of textures Colorizing a sprite node Playing sounds Removing a node from the node tree Calling a block Invoking a selector on an object See Action Initializers for a full list of action types. Chaining Actions Actions can be chained together in multiple ways: A sequence action has multiple child actions. Each action in the sequence begins after the previous action ends. A group action has multiple child actions. All actions stored in the group begin executing at the same time. A repeating action stores a single child action. When the child action completes, it is restarted. To delay a subsequent action in the chain, insert a wait(forDuration:) action in the sequence, and remember that groups, sequences, and repeating actions may be nested.

## Topics

### Animating a Node’s Position in a Linear Path

- [moveBy(x:y:duration:)](spritekit/skaction/moveby(x:y:duration:).md)
- [move(by:duration:)](spritekit/skaction/move(by:duration:).md)
- [move(to:duration:)](spritekit/skaction/move(to:duration:).md)
- [moveTo(x:duration:)](spritekit/skaction/moveto(x:duration:).md)
- [moveTo(y:duration:)](spritekit/skaction/moveto(y:duration:).md)

### Animating a Node’s Position Along a Custom Path

- [follow(_:duration:)](spritekit/skaction/follow(_:duration:).md)
- [follow(_:speed:)](spritekit/skaction/follow(_:speed:).md)
- [follow(_:asOffset:orientToPath:duration:)](spritekit/skaction/follow(_:asoffset:orienttopath:duration:).md)
- [follow(_:asOffset:orientToPath:speed:)](spritekit/skaction/follow(_:asoffset:orienttopath:speed:).md)

### Animating the Rotation of a Node

- [rotate(byAngle:duration:)](spritekit/skaction/rotate(byangle:duration:).md)
- [rotate(toAngle:duration:)](spritekit/skaction/rotate(toangle:duration:).md)
- [rotate(toAngle:duration:shortestUnitArc:)](spritekit/skaction/rotate(toangle:duration:shortestunitarc:).md)

### Controlling the Action’s Speed

- [speed(by:duration:)](spritekit/skaction/speed(by:duration:).md)
- [speed(to:duration:)](spritekit/skaction/speed(to:duration:).md)

### Animating the Scaling of a Node

- [scale(by:duration:)](spritekit/skaction/scale(by:duration:).md)
- [scale(to:duration:)](spritekit/skaction/scale(to:duration:)-43bz6.md)
- [scale(to:duration:)](spritekit/skaction/scale(to:duration:)-1xyzs.md)
- [scaleX(by:y:duration:)](spritekit/skaction/scalex(by:y:duration:).md)
- [scaleX(to:y:duration:)](spritekit/skaction/scalex(to:y:duration:).md)
- [scaleX(to:duration:)](spritekit/skaction/scalex(to:duration:).md)
- [scaleY(to:duration:)](spritekit/skaction/scaley(to:duration:).md)

### Animating the Transparency of a Node

- [fadeIn(withDuration:)](spritekit/skaction/fadein(withduration:).md)
- [fadeOut(withDuration:)](spritekit/skaction/fadeout(withduration:).md)
- [fadeAlpha(by:duration:)](spritekit/skaction/fadealpha(by:duration:).md)
- [fadeAlpha(to:duration:)](spritekit/skaction/fadealpha(to:duration:).md)

### Animating a Node’s Texture

- [resize(byWidth:height:duration:)](spritekit/skaction/resize(bywidth:height:duration:).md)
- [resize(toHeight:duration:)](spritekit/skaction/resize(toheight:duration:).md)
- [resize(toWidth:duration:)](spritekit/skaction/resize(towidth:duration:).md)
- [resize(toWidth:height:duration:)](spritekit/skaction/resize(towidth:height:duration:).md)
- [setTexture(_:)](spritekit/skaction/settexture(_:).md)
- [setTexture(_:resize:)](spritekit/skaction/settexture(_:resize:).md)
- [animate(with:timePerFrame:)](spritekit/skaction/animate(with:timeperframe:).md)
- [animate(with:timePerFrame:resize:restore:)](spritekit/skaction/animate(with:timeperframe:resize:restore:).md)
- [setNormalTexture(_:)](spritekit/skaction/setnormaltexture(_:).md)
- [setNormalTexture(_:resize:)](spritekit/skaction/setnormaltexture(_:resize:).md)
- [animate(withNormalTextures:timePerFrame:)](spritekit/skaction/animate(withnormaltextures:timeperframe:).md)
- [animate(withNormalTextures:timePerFrame:resize:restore:)](spritekit/skaction/animate(withnormaltextures:timeperframe:resize:restore:).md)
- [colorize(with:colorBlendFactor:duration:)](spritekit/skaction/colorize(with:colorblendfactor:duration:).md)
- [colorize(withColorBlendFactor:duration:)](spritekit/skaction/colorize(withcolorblendfactor:duration:).md)

### Animating Properties of a Node’s Physics Body

- [applyForce(_:duration:)](spritekit/skaction/applyforce(_:duration:).md)
- [applyTorque(_:duration:)](spritekit/skaction/applytorque(_:duration:).md)
- [applyForce(_:at:duration:)](spritekit/skaction/applyforce(_:at:duration:).md)
- [applyImpulse(_:duration:)](spritekit/skaction/applyimpulse(_:duration:).md)
- [applyAngularImpulse(_:duration:)](spritekit/skaction/applyangularimpulse(_:duration:).md)
- [applyImpulse(_:at:duration:)](spritekit/skaction/applyimpulse(_:at:duration:).md)
- [applyImpulse(_:duration:)](spritekit/skaction/applyimpulse(_:duration:).md)
- [changeCharge(to:duration:)](spritekit/skaction/changecharge(to:duration:).md)
- [changeCharge(by:duration:)](spritekit/skaction/changecharge(by:duration:).md)
- [changeMass(to:duration:)](spritekit/skaction/changemass(to:duration:).md)
- [changeMass(by:duration:)](spritekit/skaction/changemass(by:duration:).md)
- [strength(to:duration:)](spritekit/skaction/strength(to:duration:).md)
- [strength(by:duration:)](spritekit/skaction/strength(by:duration:).md)
- [falloff(to:duration:)](spritekit/skaction/falloff(to:duration:).md)
- [falloff(by:duration:)](spritekit/skaction/falloff(by:duration:).md)

### Reversing an Animation

- [reversed()](spritekit/skaction/reversed().md)

### Animate the Warping of a Node

- [animate(withWarps:times:)](spritekit/skaction/animate(withwarps:times:).md)
- [animate(withWarps:times:restore:)](spritekit/skaction/animate(withwarps:times:restore:).md)
- [warp(to:duration:)](spritekit/skaction/warp(to:duration:).md)

### Controlling the Audio of a Node

- [playSoundFileNamed(_:waitForCompletion:)](spritekit/skaction/playsoundfilenamed(_:waitforcompletion:).md)
- [play()](spritekit/skaction/play().md)
- [pause()](spritekit/skaction/pause().md)
- [stop()](spritekit/skaction/stop().md)
- [changePlaybackRate(to:duration:)](spritekit/skaction/changeplaybackrate(to:duration:).md)
- [changePlaybackRate(by:duration:)](spritekit/skaction/changeplaybackrate(by:duration:).md)
- [changeVolume(to:duration:)](spritekit/skaction/changevolume(to:duration:).md)
- [changeVolume(by:duration:)](spritekit/skaction/changevolume(by:duration:).md)
- [changeObstruction(to:duration:)](spritekit/skaction/changeobstruction(to:duration:).md)
- [changeObstruction(by:duration:)](spritekit/skaction/changeobstruction(by:duration:).md)
- [changeOcclusion(to:duration:)](spritekit/skaction/changeocclusion(to:duration:).md)
- [changeOcclusion(by:duration:)](spritekit/skaction/changeocclusion(by:duration:).md)
- [changeReverb(to:duration:)](spritekit/skaction/changereverb(to:duration:).md)
- [changeReverb(by:duration:)](spritekit/skaction/changereverb(by:duration:).md)
- [stereoPan(to:duration:)](spritekit/skaction/stereopan(to:duration:).md)
- [stereoPan(by:duration:)](spritekit/skaction/stereopan(by:duration:).md)

### Removing a Node from the Scene

- [removeFromParent()](spritekit/skaction/removefromparent().md)

### Running Actions on Children

- [run(_:onChildWithName:)](spritekit/skaction/run(_:onchildwithname:).md)

### Chaining Actions

- [group(_:)](spritekit/skaction/group(_:).md)
- [sequence(_:)](spritekit/skaction/sequence(_:).md)
- [repeat(_:count:)](spritekit/skaction/repeat(_:count:).md)
- [repeatForever(_:)](spritekit/skaction/repeatforever(_:).md)

### Delaying Actions

- [wait(forDuration:)](spritekit/skaction/wait(forduration:).md)
- [wait(forDuration:withRange:)](spritekit/skaction/wait(forduration:withrange:).md)

### Performing Inverse Kinematics

- [Working with Inverse Kinematics](spritekit/working-with-inverse-kinematics.md)
- [reach(to:rootNode:duration:)](spritekit/skaction/reach(to:rootnode:duration:)-9gdvl.md)
- [reach(to:rootNode:velocity:)](spritekit/skaction/reach(to:rootnode:velocity:)-8xv45.md)
- [reach(to:rootNode:duration:)](spritekit/skaction/reach(to:rootnode:duration:)-1db76.md)
- [reach(to:rootNode:velocity:)](spritekit/skaction/reach(to:rootnode:velocity:)-7gbvx.md)

### Creating Custom Actions

- [init(named:)](spritekit/skaction/init(named:).md)
- [init(named:duration:)](spritekit/skaction/init(named:duration:).md)
- [init(named:fromURL:)](spritekit/skaction/init(named:fromurl:).md)
- [init(named:fromURL:duration:)](spritekit/skaction/init(named:fromurl:duration:).md)
- [customAction(withDuration:actionBlock:)](spritekit/skaction/customaction(withduration:actionblock:).md)
- [perform(_:onTarget:)](spritekit/skaction/perform(_:ontarget:).md)
- [run(_:)](spritekit/skaction/run(_:).md)
- [run(_:queue:)](spritekit/skaction/run(_:queue:).md)

### Controlling Node Visibility

- [unhide()](spritekit/skaction/unhide().md)
- [hide()](spritekit/skaction/hide().md)

## See Also

### First Steps

- [Getting Started with Actions](spritekit/getting-started-with-actions.md)
