123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- var game = new Phaser.Game(800, 240, Phaser.CANVAS, '', {
- preload: preload,
- create: create,
- update: update
- }, false, false);
- var score = 0;
- var scoreText;
- function preload() {
- game.load.spritesheet('tiles', 'tiled/tiles_dctsfk.png', 16, 16);
- game.load.spritesheet('goomba', 'assets/willie/dude-willie.png', 32, 48);
- //game.load.spritesheet('mario', 'http://res.cloudinary.com/harsay/image/upload/v1464614984/mario_wjlfy5.png', 16, 16);
- game.load.spritesheet('coin', 'tiled/coin_iormvy.png', 16, 16);
- game.load.spritesheet('mario', resource.dude, 32, 48);
- game.load.tilemap('level', 'tiled/world.json', null, Phaser.Tilemap.TILED_JSON);
- }
- function create() {
- Phaser.Canvas.setImageRenderingCrisp(game.canvas) //renderizzare meglio
- game.scale.pageAlignHorizontally = true; //per scalare
- game.scale.pageAlignVertically = true
- game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
- game.physics.startSystem(Phaser.Physics.ARCADE);
- game.stage.backgroundColor = '#5c94fc';
- map = game.add.tilemap('level');
- map.addTilesetImage('tiles', 'tiles');
- map.setCollisionBetween(3, 12, true, 'solid');
- map.createLayer('background');
- layer = map.createLayer('solid');
- layer.resizeWorld();
- coins = game.add.group();
- coins.enableBody = true;
- map.createFromTiles(2, null, 'coin', 'stuff', coins);
- coins.callAll('animations.add', 'animations', 'spin', [0, 0, 1, 2], 3, true);
- coins.callAll('animations.play', 'animations', 'spin');
- goombas = game.add.group();
- goombas.enableBody = true;
- map.createFromTiles(1, null, 'goomba', 'stuff', goombas);
- goombas.callAll('animations.add', 'animations', 'walkLeft', [0, 1, 2, 3], 7, true);
- goombas.callAll('animations.add', 'animations', 'walkRight', [5, 6, 7, 8], 7, true);
- goombas.callAll('animations.play', 'animations', 'walkLeft');
- goombas.setAll('body.bounce.x', 1);
- goombas.setAll('body.velocity.x', -80);
- goombas.setAll('body.gravity.y', 500);
- player = game.add.sprite(32, game.world.height - 150, 'mario');
- game.physics.arcade.enable(player);
- player.body.gravity.y = 370;
- player.body.collideWorldBounds = true;
- //player.animations.add('walkRight', [1, 2, 3], 10, true);
- //player.animations.add('walkLeft', [8, 9, 10], 10, true);
- player.animations.add('left', [0, 1, 2, 3], 7, true);
- player.animations.add('right', [5, 6, 7, 8], 7, true);
- player.goesRight = true;
- game.camera.follow(player);
- cursors = game.input.keyboard.createCursorKeys();
- scoreText = game.add.text(16, 16, 'pilla: 0', { fontSize: '32px', fill: '#000' });
- }
- function update() {
- game.physics.arcade.collide(player, layer);
- game.physics.arcade.collide(goombas, layer);
- game.physics.arcade.overlap(player, goombas, goombaOverlap);
- game.physics.arcade.overlap(player, coins, coinOverlap);
- game.physics.arcade.overlap(goombas, layer, goombaCollide);
- if (player.body.enable) {
- player.body.velocity.x = 0;
- if (cursors.left.isDown) {
- player.body.velocity.x = -90;
- player.animations.play('left');
- player.goesRight = false;
- } else if (cursors.right.isDown) {
- player.body.velocity.x = 90;
- player.animations.play('right');
- player.goesRight = true;
- } else {
- player.animations.stop();
- player.frame = 4;
- }
- if (cursors.up.isDown && player.body.onFloor()) {
- player.body.velocity.y = -190;
- player.animations.stop();
- }
- if (player.body.velocity.y != 0) {
- if (player.goesRight) player.frame = 8;
- else player.frame = 3;
- }
- }
- }
- function goombaCollide(goomba, layer){
- if (goomba.animations.name=='walkLeft' &&
- goomba.body.blocked.left) {
- goomba.animations.play('walkRight');
- goomba.animations.update;
- }
- else if (goomba.animations.name=='walkRight' &&
- goomba.body.blocked.right) {
- goomba.animations.play('walkLeft');
- goomba.animations.update;
- };
- }
- function coinOverlap(player, coin) {
- coin.kill();
- collectHeart();
- }
- function goombaOverlap(player, goomba) {
- if (player.body.touching.down) {
- goomba.animations.stop();
- goomba.frame = 4;
- goomba.body.enable = false;
- player.body.velocity.y = -80;
- game.time.events.add(Phaser.Timer.SECOND, function() {
- goomba.kill();
- });
- } else {
- player.frame = 6;
- player.body.enable = false;
- player.animations.stop();
- game.time.events.add(Phaser.Timer.SECOND * 3, function() {
- game.paused = true;
- });
- }
- }
- function collectHeart (player, star) {
- score += 1;
- scoreText.text = 'pilla: ' + score;
- }
|