Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <title>Phaser - Making your first game, part 9</title>
- <script type="text/javascript" src="js/phaser.min.js"></script>
- <style type="text/css">
- body {
- margin: 0;
- }
- </style>
- </head>
- <body>
- <script type="text/javascript">
- var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
- function preload() {
- game.load.image('sky', 'assets/sky.png');
- game.load.image('ground', 'assets/platform.png');
- game.load.image('star', 'assets/star.png');
- game.load.spritesheet('dude', 'assets/dude.png', 32, 48);
- }
- var player;
- var platforms;
- var cursors;
- var stars;
- var score = 0;
- var scoreText;
- var starsText;
- var fpsText;
- function create() {
- game.time.advancedTiming = true;
- // We're going to be using physics, so enable the Arcade Physics system
- game.physics.startSystem(Phaser.Physics.ARCADE);
- // A simple background for our game
- game.add.sprite(0, 0, 'sky');
- // The platforms group contains the ground and the 2 ledges we can jump on
- platforms = game.add.group();
- // We will enable physics for any object that is created in this group
- platforms.enableBody = true;
- // Here we create the ground.
- var ground = platforms.create(0, game.world.height - 64, 'ground');
- // Scale it to fit the width of the game (the original sprite is 400x32 in size)
- ground.scale.setTo(2, 2);
- // This stops it from falling away when you jump on it
- ground.body.immovable = true;
- // Now let's create two ledges
- var ledge = platforms.create(400, 400, 'ground');
- ledge.body.immovable = true;
- ledge = platforms.create(-150, 250, 'ground');
- ledge.body.immovable = true;
- // The player and its settings
- player = game.add.sprite(32, game.world.height - 150, 'dude');
- // We need to enable physics on the player
- game.physics.arcade.enable(player);
- // Player physics properties. Give the little guy a slight bounce.
- player.body.bounce.y = 0.2;
- player.body.gravity.y = 1000;
- player.body.collideWorldBounds = true;
- // Our two animations, walking left and right.
- player.animations.add('left', [0, 1, 2, 3], 10, true);
- player.animations.add('right', [5, 6, 7, 8], 10, true);
- // Finally some stars to collect
- stars = game.add.group();
- // We will enable physics for any star that is created in this group
- stars.enableBody = true;
- // Here we'll create 12 of them evenly spaced apart
- for (var i = 0; i < 12; i++)
- {
- createStar(i * 70);
- }
- // The score
- scoreText = game.add.text(16, 16, 'score: 0', { fontSize: '32px', fill: '#000' });
- starsText = game.add.text(16, 48, 'stars: 12');
- fpsText = game.add.text(16, 96, 'fps: x');
- // Our controls.
- cursors = game.input.keyboard.createCursorKeys();
- }
- function update() {
- // Collide the player and the stars with the platforms
- game.physics.arcade.collide(player, platforms);
- game.physics.arcade.collide(stars, platforms);
- // Checks to see if the player overlaps with any of the stars, if he does call the collectStar function
- game.physics.arcade.overlap(player, stars, collectStar, null, this);
- // Reset the players velocity (movement)
- player.body.velocity.x = 0;
- if (cursors.left.isDown)
- {
- // Move to the left
- player.body.velocity.x = -150;
- player.animations.play('left');
- }
- else if (cursors.right.isDown)
- {
- // Move to the right
- player.body.velocity.x = 150;
- player.animations.play('right');
- }
- else
- {
- // Stand still
- player.animations.stop();
- player.frame = 4;
- }
- // Allow the player to jump if they are touching the ground.
- if (cursors.up.isDown && player.body.touching.down)
- {
- player.body.velocity.y = -700;
- }
- fpsText.text = game.time.fps + 'fps';
- }
- function collectStar (player, star) {
- // Removes the star from the screen
- star.kill();
- createStar(Math.random() * (800 - 96))
- createStar(Math.random() * (800 - 96))
- // Add and update the score
- score += 10;
- scoreText.text = 'Score: ' + score;
- }
- function createStar(x) {
- // Create a star inside of the 'stars' group
- var star = stars.create(x + (Math.random() * 60) - 30, 0, 'star');
- // Let gravity do its thing
- star.body.gravity.y = 100;
- // This just gives each star a slightly random bounce value
- star.body.bounce.y = 0.4 + Math.random() * 0.2;
- if (starsText !== 'undefined'&& starsText != null && stars != 'undefined' && stars != null) {
- starsText.text = 'Stars: ' + stars.total;
- }
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement