var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render }); function preload() { game.load.image('chunk', 'assets/sprites/chunk.png'); game.load.image('arrow', 'assets/sprites/asteroids_ship.png'); game.load.image('p', 'assets/sprites/mushroom2.png'); game.load.image('ball', 'assets/sprites/shinyball.png'); } var sprite; var sprite2; var track; var bmd; function create() { game.stage.backgroundColor = '#124184'; bmd = game.add.bitmapData(800, 600); bmd.fillStyle('#ffffff'); var bg = game.add.sprite(0, 0, bmd); bg.body.moves = false; test9(); } // stacked function test9() { game.physics.gravity.y = 500; sprite = game.add.sprite(400, 100, 'ball'); sprite.body.collideWorldBounds = true; sprite.body.bounce.setTo(0.8, 0.8); sprite.body.minBounceVelocity = 0.8; sprite2 = game.add.sprite(400, 300, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.5, 0.5); sprite2.body.minBounceVelocity = 0.8; // game.input.onDown.add(launch8, this); } // gravity into floor jiggle function test8() { game.physics.gravity.y = 1000; sprite = game.add.sprite(400, 100, 'ball'); sprite.body.collideWorldBounds = true; // it's all about tweaking these values sprite.body.bounce.setTo(0.8, 0.8); sprite.body.minBounceVelocity = 1.2; sprite.body.velocity.x = -400; sprite.body.friction = 1.2; sprite2 = game.add.sprite(500, 100, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.5, 0.5); sprite2.body.minBounceVelocity = 0.8; sprite2.body.friction = 0.5; game.input.onDown.add(launch8, this); } function launch8() { // sprite.body.velocity.x = -200; sprite2.body.velocity.x = 200; } // both sprites are shot into each other vertically function test7() { // game.physics.gravity.y = 50; sprite = game.add.sprite(400, 600, 'ball'); sprite.body.collideWorldBounds = true; sprite.body.bounce.setTo(0.8, 0.8); sprite2 = game.add.sprite(400, 100, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch7, this); } function launch7() { sprite.body.velocity.y = -200; // sprite2.body.velocity.y = 200; } // sprite is on the bottom, blocked by the world bounds, sprite2 falls onto it via gravity only function test6() { game.physics.gravity.y = 100; sprite = game.add.sprite(380, 600, 'p'); sprite.body.collideWorldBounds = true; sprite2 = game.add.sprite(400, 100, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; } // sprite is on the bottom, blocked by the world bounds, sprite2 falls onto it function test5() { game.physics.gravity.y = 50; sprite = game.add.sprite(400, 600, 'ball'); sprite.body.collideWorldBounds = true; sprite2 = game.add.sprite(400, 100, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch5, this); } function launch5() { sprite2.body.velocity.y = 200; } // bounce both sprites into each other, one with lots less velocity - checking newtons craddle approach function test4() { game.physics.gravity.y = 100; sprite = game.add.sprite(780, 400, 'ball'); sprite.body.collideWorldBounds = true; sprite.body.bounce.setTo(0.8, 0.8); sprite2 = game.add.sprite(0, 400, 'ball'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch4, this); } function launch4() { sprite.body.velocity.x = 70; sprite2.body.velocity.x = -250; } // bounce both sprites into each other, identical bounce + velocity function test3() { game.physics.gravity.y = 100; sprite = game.add.sprite(780, 400, 'p'); sprite.body.collideWorldBounds = true; sprite.body.bounce.setTo(0.8, 0.8); sprite2 = game.add.sprite(0, 400, 'p'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch3, this); } function launch3() { sprite.body.velocity.x = 225; sprite2.body.velocity.x = -225; } // sprite is on the right, blocked by the world bounds, sprite2 bounces into it function test2() { game.physics.gravity.y = 100; sprite = game.add.sprite(780, 400, 'p'); sprite.body.collideWorldBounds = true; sprite2 = game.add.sprite(0, 400, 'p'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch2, this); } function launch2() { sprite2.body.velocity.x = -225; } // sprite is on the left, blocked by the world bounds, sprite2 bounces into it function test1() { game.physics.gravity.y = 100; sprite = game.add.sprite(0, 400, 'p'); sprite.body.collideWorldBounds = true; sprite2 = game.add.sprite(700, 400, 'p'); sprite2.body.collideWorldBounds = true; sprite2.body.bounce.setTo(0.8, 0.8); track = sprite2; game.input.onDown.add(launch1, this); } function launch1() { sprite2.body.velocity.x = -225; } function update() { game.physics.collide(sprite, sprite2); // sprite.rotation = sprite.body.angle; if (sprite) { bmd.fillStyle('#ffff00'); bmd.fillRect(sprite.body.center.x, sprite.body.center.y, 2, 2); } if (sprite2) { bmd.fillStyle('#ff00ff'); bmd.fillRect(sprite2.body.center.x, sprite2.body.center.y, 2, 2); } } function render() { if (sprite) { game.debug.renderBodyInfo(sprite, 16, 24); } if (sprite2) { game.debug.renderBodyInfo(sprite2, 16, 190); } }