mirror of
https://github.com/photonstorm/phaser
synced 2024-12-18 00:53:42 +00:00
110 lines
2.9 KiB
JavaScript
110 lines
2.9 KiB
JavaScript
|
|
||
|
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
|
||
|
|
||
|
var ufo;
|
||
|
var Keys = Phaser.Keyboard;
|
||
|
var speed = 4;
|
||
|
var style = 'default';
|
||
|
|
||
|
function preload() {
|
||
|
|
||
|
game.load.image('ground', 'assets/tests/ground-2x.png');
|
||
|
game.load.image('river', 'assets/tests/river-2x.png');
|
||
|
game.load.image('sky', 'assets/tests/sky-2x.png');
|
||
|
game.load.image('cloud0', 'assets/tests/cloud-big-2x.png');
|
||
|
game.load.image('cloud1', 'assets/tests/cloud-narrow-2x.png');
|
||
|
game.load.image('cloud2', 'assets/tests/cloud-small-2x.png');
|
||
|
game.load.image('ufo','assets/sprites/ufo.png');
|
||
|
game.load.image('baddie','assets/sprites/space-baddie.png');
|
||
|
game.load.spritesheet('button', 'assets/buttons/follow-style-button.png', 224, 70);
|
||
|
|
||
|
}
|
||
|
|
||
|
function create() {
|
||
|
|
||
|
// Make the world larger than the actual canvas
|
||
|
game.world.setBounds(0, 0, 1400, 1400);
|
||
|
|
||
|
for (var i=0; i < 10; i++)
|
||
|
{
|
||
|
game.add.sprite(game.world.randomX, game.world.randomY, 'baddie');
|
||
|
}
|
||
|
|
||
|
// Background images
|
||
|
game.add.tileSprite(0, 0, 1400, 600, 'sky');
|
||
|
game.add.sprite(0, 360, 'ground');
|
||
|
game.add.sprite(0, 400, 'river');
|
||
|
game.add.sprite(200, 120, 'cloud0');
|
||
|
game.add.sprite(-60, 120, 'cloud1');
|
||
|
game.add.sprite(900, 170, 'cloud2');
|
||
|
|
||
|
// ufo sprite
|
||
|
ufo = game.add.sprite(300, 240, 'ufo');
|
||
|
|
||
|
//registration point
|
||
|
ufo.anchor.setTo(0.5, 0.5);
|
||
|
|
||
|
game.camera.follow(ufo);
|
||
|
|
||
|
// follow style switch buttons
|
||
|
btn0 = game.add.button(6, 40, 'button', lockonFollow,this, 0, 0, 0);
|
||
|
btn1 = game.add.button(6, 120, 'button', platformerFollow,this, 1, 1, 1);
|
||
|
btn2 = game.add.button(6, 200, 'button', topdownFollow,this, 2, 2, 2);
|
||
|
btn3 = game.add.button(6, 280, 'button', topdownTightFollow,this, 3, 3, 3);
|
||
|
|
||
|
}
|
||
|
|
||
|
function lockonFollow() {
|
||
|
game.camera.follow(ufo, Phaser.Camera.FOLLOW_LOCKON);
|
||
|
style = 'STYLE_LOCKON';
|
||
|
}
|
||
|
|
||
|
function platformerFollow() {
|
||
|
game.camera.follow(ufo, Phaser.Camera.FOLLOW_PLATFORMER);
|
||
|
style = 'STYLE_PLATFORMER';
|
||
|
}
|
||
|
|
||
|
function topdownFollow() {
|
||
|
game.camera.follow(ufo, Phaser.Camera.FOLLOW_TOPDOWN);
|
||
|
style = 'STYLE_TOPDOWN';
|
||
|
}
|
||
|
|
||
|
function topdownTightFollow() {
|
||
|
game.camera.follow(ufo, Phaser.Camera.FOLLOW_TOPDOWN_TIGHT);
|
||
|
style = 'STYLE_TOPDOWN_TIGHT';
|
||
|
}
|
||
|
|
||
|
function update() {
|
||
|
|
||
|
if (game.input.keyboard.isDown(Keys.LEFT))
|
||
|
{
|
||
|
ufo.x -= speed;
|
||
|
ufo.angle = -15;
|
||
|
}
|
||
|
else if (game.input.keyboard.isDown(Keys.RIGHT))
|
||
|
{
|
||
|
ufo.x += speed;
|
||
|
ufo.angle = 15;
|
||
|
}
|
||
|
else if (game.input.keyboard.isDown(Keys.UP))
|
||
|
{
|
||
|
ufo.y -= speed;
|
||
|
}
|
||
|
else if (game.input.keyboard.isDown(Keys.DOWN))
|
||
|
{
|
||
|
ufo.y += speed;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ufo.angle = 0;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
function render () {
|
||
|
|
||
|
game.debug.renderText('Click buttons to switch follow styles', 32, 32);
|
||
|
game.debug.renderText('Current style: ' + style, 32, 64);
|
||
|
|
||
|
}
|