mirror of
https://github.com/wassname/phaser.git
synced 2026-07-16 01:20:13 +08:00
Animation.looped has been renamed to Animation.loop. It's a boolean you can toggle at run-time to turn on/off animation looping.
A single Animation object now has 3 new events: onStart, onLoop and onComplete. Animation.loopCount holds the number of times the animation has looped since it last started. Animation.stop has a new parameter: dispatchComplete. If true it'll dispatch an Animation.onComplete event.
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
|
||||
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update });
|
||||
|
||||
function preload() {
|
||||
|
||||
game.load.image('lazur', 'assets/pics/thorn_lazur.png');
|
||||
game.load.spritesheet('mummy', 'assets/sprites/metalslug_mummy37x45.png', 37, 45, 18);
|
||||
|
||||
}
|
||||
|
||||
var back;
|
||||
var mummy;
|
||||
var anim;
|
||||
var loopText;
|
||||
|
||||
function create() {
|
||||
|
||||
game.stage.smoothed = false;
|
||||
|
||||
back = game.add.image(0, -400, 'lazur');
|
||||
back.scale.set(2);
|
||||
|
||||
mummy = game.add.sprite(200, 360, 'mummy', 5);
|
||||
mummy.scale.set(4);
|
||||
|
||||
anim = mummy.animations.add('walk');
|
||||
|
||||
anim.onStart.add(animationStarted, this);
|
||||
anim.onLoop.add(animationLooped, this);
|
||||
anim.onComplete.add(animationStopped, this);
|
||||
|
||||
anim.play(10, true);
|
||||
|
||||
}
|
||||
|
||||
function animationStarted(sprite, animation) {
|
||||
|
||||
game.add.text(32, 32, 'Animation started', { fill: 'white' });
|
||||
|
||||
}
|
||||
|
||||
function animationLooped(sprite, animation) {
|
||||
|
||||
if (animation.loopCount === 1)
|
||||
{
|
||||
loopText = game.add.text(32, 64, 'Animation looped', { fill: 'white' });
|
||||
}
|
||||
else
|
||||
{
|
||||
loopText.text = 'Animation looped x2';
|
||||
animation.loop = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function animationStopped(sprite, animation) {
|
||||
|
||||
game.add.text(32, 64+32, 'Animation stopped', { fill: 'white' });
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
if (anim.isPlaying)
|
||||
{
|
||||
back.x -= 1;
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB |
@@ -42,9 +42,7 @@ function update() {
|
||||
// This creates a simple sine-wave effect running through our BitmapData.
|
||||
// This is then duplicated across all 100 sprites using it, meaning we only have to calculate it and upload it to the GPU once.
|
||||
|
||||
function updateWobblyBall()
|
||||
{
|
||||
|
||||
function updateWobblyBall() {
|
||||
|
||||
var s = 0;
|
||||
var copyRect = { x: 0, y: 0, w: wavePixelChunk, h: 32 };
|
||||
@@ -76,4 +74,5 @@ function updateWobblyBall()
|
||||
{
|
||||
waveDataCounter = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
|
||||
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update });
|
||||
|
||||
function preload() {
|
||||
|
||||
game.load.image('lazur', 'assets/pics/thorn_lazur.png');
|
||||
game.load.spritesheet('mummy', 'assets/sprites/metalslug_mummy37x45.png', 37, 45, 18);
|
||||
|
||||
}
|
||||
|
||||
var back;
|
||||
var mummy;
|
||||
var anim;
|
||||
var loopText;
|
||||
|
||||
function create() {
|
||||
|
||||
game.stage.smoothed = false;
|
||||
|
||||
back = game.add.image(0, -400, 'lazur');
|
||||
back.scale.set(2);
|
||||
|
||||
mummy = game.add.sprite(200, 360, 'mummy', 5);
|
||||
mummy.scale.set(4);
|
||||
|
||||
anim = mummy.animations.add('walk');
|
||||
|
||||
anim.onStart.add(animationStarted, this);
|
||||
anim.onLoop.add(animationLooped, this);
|
||||
anim.onComplete.add(animationStopped, this);
|
||||
|
||||
anim.play(10, true);
|
||||
|
||||
}
|
||||
|
||||
function animationStarted(sprite, animation) {
|
||||
|
||||
game.add.text(32, 32, 'Animation started', { fill: 'white' });
|
||||
|
||||
}
|
||||
|
||||
function animationLooped(sprite, animation) {
|
||||
|
||||
if (animation.loopCount === 1)
|
||||
{
|
||||
loopText = game.add.text(32, 64, 'Animation looped', { fill: 'white' });
|
||||
}
|
||||
else
|
||||
{
|
||||
loopText.text = 'Animation looped x2';
|
||||
animation.loop = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function animationStopped(sprite, animation) {
|
||||
|
||||
game.add.text(32, 64+32, 'Animation stopped', { fill: 'white' });
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
if (anim.isPlaying)
|
||||
{
|
||||
back.x -= 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
|
||||
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
|
||||
// var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
|
||||
|
||||
function preload() {
|
||||
|
||||
game.load.tilemap('map', 'assets/tilemaps/maps/collision_test.json', null, Phaser.Tilemap.TILED_JSON);
|
||||
game.load.image('ground_1x1', 'assets/tilemaps/tiles/ground_1x1.png');
|
||||
game.load.image('walls_1x2', 'assets/tilemaps/tiles/walls_1x2.png');
|
||||
game.load.image('tiles2', 'assets/tilemaps/tiles/tiles2.png');
|
||||
game.load.image('player', 'assets/sprites/phaser-dude.png');
|
||||
game.load.image('box', 'assets/sprites/ufo.png');
|
||||
game.load.image('ship', 'assets/sprites/thrust_ship2.png');
|
||||
|
||||
}
|
||||
|
||||
var ship;
|
||||
var map;
|
||||
var tileset;
|
||||
var layer;
|
||||
var p;
|
||||
var b;
|
||||
var cursors;
|
||||
var box2;
|
||||
var dump;
|
||||
|
||||
function create() {
|
||||
|
||||
game.renderer.roundPixels = true;
|
||||
|
||||
// game.stage.backgroundColor = '#787878';
|
||||
|
||||
map = game.add.tilemap('map');
|
||||
|
||||
map.addTilesetImage('ground_1x1');
|
||||
map.addTilesetImage('walls_1x2');
|
||||
map.addTilesetImage('tiles2');
|
||||
|
||||
layer = map.createLayer('Tile Layer 1');
|
||||
|
||||
layer.resizeWorld();
|
||||
|
||||
map.setCollisionBetween(1, 12);
|
||||
|
||||
layer.debug = true;
|
||||
|
||||
// dump = map.generateCollisionData(layer);
|
||||
|
||||
|
||||
|
||||
box2 = game.add.sprite(200, 200, 'box');
|
||||
box2.physicsEnabled = true;
|
||||
box2.body.fixedRotation = true;
|
||||
|
||||
game.camera.follow(box2);
|
||||
|
||||
cursors = game.input.keyboard.createCursorKeys();
|
||||
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
if (cursors.left.isDown)
|
||||
{
|
||||
box2.body.moveLeft(200);
|
||||
}
|
||||
else if (cursors.right.isDown)
|
||||
{
|
||||
box2.body.moveRight(200);
|
||||
}
|
||||
else
|
||||
{
|
||||
box2.body.setZeroVelocity();
|
||||
}
|
||||
|
||||
if (cursors.up.isDown)
|
||||
{
|
||||
box2.body.moveUp(200);
|
||||
}
|
||||
else if (cursors.down.isDown)
|
||||
{
|
||||
box2.body.moveDown(200);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function render() {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user