jops 4 years ago
parent
commit
d30d518be4

+ 28 - 0
index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html >
+<head>
+  <meta charset="UTF-8">
+  <title>Lepore contro tutti</title>
+  
+  
+  
+  
+  
+</head>
+
+<body>
+  <html>
+	<head>
+    <meta charset="utf-8"/>
+	    <script src="phaser.js"></script>
+    	<script src="game.js"></script>
+    </head>
+    <body style="margin: 0; padding: 0;"></body>
+</html>
+  <script src='https://cdnjs.cloudflare.com/ajax/libs/phaser/2.4.7/phaser.min.js'></script>
+
+    <script src="js/resource.js"></script>
+    <script src="js/index.js"></script>
+
+</body>
+</html>

BIN
js/assets/dude4.png


BIN
js/assets/willie/dude-willie.png


+ 145 - 0
js/index.js

@@ -0,0 +1,145 @@
+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; 
+}

File diff suppressed because it is too large
+ 2 - 0
js/phaser.min.js


+ 3 - 0
js/resource.js

@@ -0,0 +1,3 @@
+resource = {
+  dude: 'assets/dude4.png'
+}

BIN
js/tiled/coin_iormvy.png


BIN
js/tiled/tiles_dctsfk.png


BIN
js/tiled/tiles_mario.png


File diff suppressed because it is too large
+ 12 - 0
js/tiled/world.json


+ 4 - 0
js/tiled/xm-logo.tsx

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset version="1.2" tiledversion="2019.12.11" name="xm-logo" tilewidth="16" tileheight="16" tilecount="440" columns="44">
+ <image source="xm-logo.png" width="714" height="170"/>
+</tileset>

BIN
willie/dude-wille.xcf


BIN
willie/dude-willie.png


BIN
willie/frontal-littel.xcf


BIN
willie/frontal.xcf


BIN
willie/lateral.xcf


BIN
willie/signal-2017-03-24-180717.jpg


BIN
willie/signal-2017-03-24-180741.jpg


Some files were not shown because too many files changed in this diff