Create a HTML5 game like Planet Revenge using Phaser and ARCADE physics.
Talking about Planet Revenge game, Game development, HTML5, Javascript and Phaser.
Learn cross platform HTML5 game development
Check my Gumroad page for commented source code, games and books.
Guide your UFO safely across 100 levels over five different worlds each with different surfaces and gravity effects. Navigate around the obstacles to complete the worlds in as few attempts as possible!
It’s a fun game, but moreover it’s quite easy to make, and I am showing you a step by step guide about the making of this game using Phaser.
GAME SETUP
First, we need to create the game itself and place the spaceship on the stage:
var game;
window.onload = function() {
game = new Phaser.Game(960, 640, Phaser.AUTO, "");
game.state.add("PlayGame", playGame);
game.state.start("PlayGame");
}
var playGame = function(game){};
playGame.prototype = {
preload: function(){
game.load.image("spaceship", "assets/sprites/spaceship.png");
},
create: function(){
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
this.spaceship = game.add.sprite(50, game.height / 2, "spaceship");
this.spaceship.anchor.set(0.5);
}
}
var game;
window.onload = function() {
game = new Phaser.Game(960, 640, Phaser.AUTO, "");
game.state.add("PlayGame", playGame);
game.state.start("PlayGame");
}
var playGame = function(game){};
playGame.prototype = {
preload: function(){
game.load.image("spaceship", "assets/sprites/spaceship.png");
},
create: function(){
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
this.spaceship = game.add.sprite(50, game.height / 2, "spaceship");
this.spaceship.anchor.set(0.5);
game.physics.enable(this.spaceship, Phaser.Physics.ARCADE);
game.input.onDown.add(this.startLevel, this);
},
startLevel: function(){
this.spaceship.body.velocity.setTo(200, 0);
}
}
var game;
window.onload = function() {
game = new Phaser.Game(960, 640, Phaser.AUTO, "");
game.state.add("PlayGame", playGame);
game.state.start("PlayGame");
}
var playGame = function(game){};
playGame.prototype = {
preload: function(){
game.load.image("spaceship", "assets/sprites/spaceship.png");
game.load.image("particle", "assets/sprites/particle.png");
},
create: function(){
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
this.emitter = game.add.emitter(50, game.height / 2, 50);
this.emitter.makeParticles("particle");
this.emitter.gravity = 0;
this.emitter.setXSpeed(0, 0);
this.emitter.setYSpeed(0, 0);
this.emitter.setAlpha(0.5, 1);
this.emitter.minParticleScale = 0.5;
this.emitter.maxParticleScale = 1;
this.spaceship = game.add.sprite(50, game.height / 2, "spaceship");
this.spaceship.anchor.set(0.5);
game.physics.enable(this.spaceship, Phaser.Physics.ARCADE);
game.input.onDown.add(this.startLevel, this);
},
startLevel: function(){
this.spaceship.body.velocity.setTo(200, 0);
this.emitter.start(false, 3000, 200);
},
update: function(){
this.emitter.x = this.spaceship.x;
this.emitter.y = this.spaceship.y;
if(this.spaceship.x > game.width + this.spaceship.width){
game.state.start("PlayGame");
}
}
}
var game;
window.onload = function() {
game = new Phaser.Game(960, 640, Phaser.AUTO, "");
game.state.add("PlayGame", playGame);
game.state.start("PlayGame");
}
var playGame = function(game){};
playGame.prototype = {
preload: function(){
game.load.image("spaceship", "assets/sprites/spaceship.png");
game.load.image("particle", "assets/sprites/particle.png");
},
create: function(){
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
this.emitter = game.add.emitter(50, game.height / 2, 50);
this.emitter.makeParticles("particle");
this.emitter.gravity = 0;
this.emitter.setXSpeed(0, 0);
this.emitter.setYSpeed(0, 0);
this.emitter.setAlpha(0.5, 1);
this.emitter.minParticleScale = 0.5;
this.emitter.maxParticleScale = 1;
this.spaceship = game.add.sprite(50, game.height / 2, "spaceship");
this.spaceship.anchor.set(0.5);
game.physics.enable(this.spaceship, Phaser.Physics.ARCADE);
game.input.onDown.add(this.startLevel, this);
},
startLevel: function(){
this.spaceship.body.velocity.setTo(200, 0);
this.spaceship.body.gravity.y = 1000;
this.engineOn();
this.emitter.start(false, 3000, 200);
game.input.onDown.remove(this.startLevel, this);
game.input.onDown.add(this.engineOn, this);
game.input.onUp.add(this.engineOff, this);
},
engineOn: function(){
this.spaceship.body.acceleration.y = -2000;
},
engineOff: function(){
this.spaceship.body.acceleration.y = 0;
},
update: function(){
this.emitter.x = this.spaceship.x;
this.emitter.y = this.spaceship.y;
if(this.spaceship.x > game.width + this.spaceship.width){
game.state.start("PlayGame");
}
}
}
Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.