Phaser: Animations

This post is part of a Phaser series. Click here to see the first post of the series.

To play an animation on a sprite after you create it:

function preload() {
  this.load.sprite('dog', 'dog.png')
}

function create() {
  this.add.sprite(400, 200, 'dog')
}

You first have to load a Sprite sheet.

A sprite sheet is a set of different sprites included in a single image.

You load a sprite sheet telling Phaser what are the width and height of each image contained in the sheet. in this case 20×20 pixels:

this.load.spritesheet('dog', 'dog.png', {
  frameWidth: 20,
  frameHeight: 20
})

Once you do so, you can generate an animation using this.anims.create():

this.anims.create({
  key: 'animate_dog',
  frames: this.anims.generateFrameNames('dog'),
  frameRate: 20,
  repeat: -1
})

Here we say to use the frames from the sprite sheet, animate at 20 frames per second, and repeat forever.

To start the animation we must call

this.ship1.play('ship1_anim')

This animation will repeat forever.

You can also perform an animation just once, and make the sprite sheet disappear after the animation is done, by adding those options:

repeat: 0,
hideOnComplete: true

and instead of running through all the frames in a sprite sheet, you can iterate through a fraction of them:

frames: this.anims.generateFrameNames('dog', {
  start: 0,
  end: 2
})

This is useful especially when you have a big sprite sheet that contains multiple objects.


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com

This post is part of a Phaser series. Click here to see the first post of the series.

To play an animation on a sprite after you create it:

function preload() {
  this.load.sprite('dog', 'dog.png')
}

function create() {
  this.add.sprite(400, 200, 'dog')
}

You first have to load a Sprite sheet.

A sprite sheet is a set of different sprites included in a single image.

You load a sprite sheet telling Phaser what are the width and height of each image contained in the sheet. in this case 20x20 pixels:

this.load.spritesheet('dog', 'dog.png', {
  frameWidth: 20,
  frameHeight: 20
})

Once you do so, you can generate an animation using this.anims.create():

this.anims.create({
  key: 'animate_dog',
  frames: this.anims.generateFrameNames('dog'),
  frameRate: 20,
  repeat: -1
})

Here we say to use the frames from the sprite sheet, animate at 20 frames per second, and repeat forever.

To start the animation we must call

this.ship1.play('ship1_anim')

This animation will repeat forever.

You can also perform an animation just once, and make the sprite sheet disappear after the animation is done, by adding those options:

repeat: 0,
hideOnComplete: true

and instead of running through all the frames in a sprite sheet, you can iterate through a fraction of them:

frames: this.anims.generateFrameNames('dog', {
  start: 0,
  end: 2
})

This is useful especially when you have a big sprite sheet that contains multiple objects.


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com


Print Share Comment Cite Upload Translate Updates
APA

flaviocopes.com | Sciencx (2021-04-23T05:00:00+00:00) Phaser: Animations. Retrieved from https://www.scien.cx/2021/04/23/phaser-animations/

MLA
" » Phaser: Animations." flaviocopes.com | Sciencx - Friday April 23, 2021, https://www.scien.cx/2021/04/23/phaser-animations/
HARVARD
flaviocopes.com | Sciencx Friday April 23, 2021 » Phaser: Animations., viewed ,<https://www.scien.cx/2021/04/23/phaser-animations/>
VANCOUVER
flaviocopes.com | Sciencx - » Phaser: Animations. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/23/phaser-animations/
CHICAGO
" » Phaser: Animations." flaviocopes.com | Sciencx - Accessed . https://www.scien.cx/2021/04/23/phaser-animations/
IEEE
" » Phaser: Animations." flaviocopes.com | Sciencx [Online]. Available: https://www.scien.cx/2021/04/23/phaser-animations/. [Accessed: ]
rf:citation
» Phaser: Animations | flaviocopes.com | Sciencx | https://www.scien.cx/2021/04/23/phaser-animations/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.