“Tipsy Tower” HTML5 prototype made with Phaser and Box2D
Talking about Tipsy Tower game, Box2D, Game development, HTML5, Javascript and Phaser.
Learn cross platform HTML5 game development
Check my Gumroad page for commented source code, games and books.
var game;
window.onload = function() {
game = new Phaser.Game(640, 960, Phaser.CANVAS);
game.state.add("PlayGame",playGame);
game.state.start("PlayGame");
}
var playGame = function(game){};
playGame.prototype = {
preload:function(){
game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
game.load.image("ground", "assets/sprites/ground.png");
game.load.image("sky", "assets/sprites/sky.png");
game.load.image("crate", "assets/sprites/crate.png");
},
create: function(){
var sky = game.add.image(0, 0, "sky");
sky.width = game.width;
this.crateGroup = game.add.group();
game.physics.startSystem(Phaser.Physics.BOX2D);
game.physics.box2d.gravity.y = 600;
this.canDrop = true;
this.movingCrate = game.add.sprite(50, 50, "crate");
this.movingCrate.anchor.set(0.5);
var crateTween = game.add.tween(this.movingCrate).to({
x: game.width - 50
}, 800, Phaser.Easing.Linear.None, true, 0, -1, true);
var ground = game.add.sprite(game.width / 2, game.height, "ground");
ground.y = game.height - ground.height / 2;
ground.preUpdate();
game.physics.box2d.enable(ground);
ground.body.static = true;
game.input.onDown.add(this.dropCrate, this);
},
dropCrate: function(){
if(this.canDrop){
this.canDrop = false;
this.movingCrate.alpha = 0;
var fallingCrate = game.add.sprite(this.movingCrate.x, this.movingCrate.y, "crate");
game.physics.box2d.enable(fallingCrate);
this.crateGroup.add(fallingCrate);
fallingCrate.preUpdate();
game.time.events.add(Phaser.Timer.SECOND / 2, function(){
this.canDrop = true;
this.movingCrate.alpha = 1;
this.movingCrate.preUpdate();
}, this);
}
},
update: function(){
this.crateGroup.forEach(function(i){
if(i.y > game.height + i.height){
i.destroy();
}
})
}
}
preUpdate
method on the ground and on the falling crate (lines 34 and 46) because of a glitch due to my Chrome + Video driver, it’s not a Phaser issue but something related to the machine it’s running on, as explained in this thread.
I had it on an old laptop, so I added these two lines to fix it, I think you can easily comment them and have your game running nicely anyway. Download the source code and don’t remember to get the Box2D plugin, it will give your games a new twist. Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.