├── assets
├── burger.png
├── tileset.png
├── tileset.psd
├── wabbit.png
├── muteButton.png
└── progressBar.png
├── README.md
├── js
├── boot.js
├── game.js
├── load.js
├── menu.js
└── play.js
├── index.html
├── lvl
├── lvl3.tmx
├── lvl2.tmx
├── lvl2.tmx.xr3328
├── lvl1.tmx
├── lvl1.json
├── lvl3.json
└── lvl2.json
└── .gitignore
/assets/burger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/burger.png
--------------------------------------------------------------------------------
/assets/tileset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/tileset.png
--------------------------------------------------------------------------------
/assets/tileset.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/tileset.psd
--------------------------------------------------------------------------------
/assets/wabbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/wabbit.png
--------------------------------------------------------------------------------
/assets/muteButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/muteButton.png
--------------------------------------------------------------------------------
/assets/progressBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/draperunner/Fatso/master/assets/progressBar.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fatso
2 |
3 | A simple platform game made with [Phaser](https://phaser.io).
4 | Eat all burgers to win. Enjoy!
5 |
6 | Play it here: https://draperunner.github.io/Fatso/
7 |
--------------------------------------------------------------------------------
/js/boot.js:
--------------------------------------------------------------------------------
1 | var bootState = {
2 |
3 | preload: function () {
4 | game.load.image('progressBar', 'assets/progressBar.png');
5 | },
6 |
7 | create: function() {
8 | // Set a background color and the physic system
9 | game.stage.backgroundColor = '#3498db';
10 | game.physics.startSystem(Phaser.Physics.ARCADE);
11 |
12 | game.state.start('load');
13 | }
14 | };
--------------------------------------------------------------------------------
/js/game.js:
--------------------------------------------------------------------------------
1 | // Initialize Phaser
2 | var game = new Phaser.Game(800, 600, Phaser.AUTO, 'gameDiv');
3 |
4 | // Our 'global' variable
5 | game.global = {
6 | sound: true,
7 | score: 0,
8 | resets: 0,
9 | level: 1
10 | };
11 |
12 | // Define states
13 | game.state.add('boot', bootState);
14 | game.state.add('load', loadState);
15 | game.state.add('menu', menuState);
16 | game.state.add('play', playState);
17 |
18 | // Start the "boot" state
19 | game.state.start('boot');
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Fatso
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/lvl/lvl3.tmx:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/lvl/lvl2.tmx:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/lvl/lvl2.tmx.xr3328:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
2 |
3 | *.iml
4 |
5 | ## Directory-based project format:
6 | .idea/
7 | # if you remove the above rule, at least ignore the following:
8 |
9 | # User-specific stuff:
10 | # .idea/workspace.xml
11 | # .idea/tasks.xml
12 | # .idea/dictionaries
13 |
14 | # Sensitive or high-churn files:
15 | # .idea/dataSources.ids
16 | # .idea/dataSources.xml
17 | # .idea/sqlDataSources.xml
18 | # .idea/dynamic.xml
19 | # .idea/uiDesigner.xml
20 |
21 | # Gradle:
22 | # .idea/gradle.xml
23 | # .idea/libraries
24 |
25 | # Mongo Explorer plugin:
26 | # .idea/mongoSettings.xml
27 |
28 | ## File-based project format:
29 | *.ipr
30 | *.iws
31 |
32 | ## Plugin-specific files:
33 |
34 | # IntelliJ
35 | out/
36 |
37 | # mpeltonen/sbt-idea plugin
38 | .idea_modules/
39 |
40 | # JIRA plugin
41 | atlassian-ide-plugin.xml
42 |
43 | # Crashlytics plugin (for Android Studio and IntelliJ)
44 | com_crashlytics_export_strings.xml
45 | crashlytics.properties
46 | crashlytics-build.properties
47 |
--------------------------------------------------------------------------------
/js/load.js:
--------------------------------------------------------------------------------
1 | var loadState = {
2 |
3 | preload: function () {
4 | // Add a loading label
5 | var loadingLabel = game.add.text(game.world.centerX, 150, 'loading...', { font: '30px Arial', fill: '#ffffff' });
6 | loadingLabel.anchor.setTo(0.5, 0.5);
7 |
8 | // Add a progress bar
9 | var progressBar = game.add.sprite(game.world.centerX, 200, 'progressBar');
10 | progressBar.anchor.setTo(0.5, 0.5);
11 | game.load.setPreloadSprite(progressBar);
12 |
13 | // Load all assets
14 | game.load.spritesheet('mute', 'assets/muteButton.png', 28, 22);
15 | game.load.image('wabbit', 'assets/wabbit.png');
16 | game.load.image('burger', 'assets/burger.png');
17 |
18 | game.load.image('tileset', 'assets/tileset.png');
19 | game.load.tilemap('lvl1', 'lvl/lvl1.json', null, Phaser.Tilemap.TILED_JSON);
20 | game.load.tilemap('lvl2', 'lvl/lvl2.json', null, Phaser.Tilemap.TILED_JSON);
21 | game.load.tilemap('lvl3', 'lvl/lvl3.json', null, Phaser.Tilemap.TILED_JSON);
22 |
23 | },
24 |
25 | create: function() {
26 | game.state.start('menu');
27 | }
28 | };
--------------------------------------------------------------------------------
/js/menu.js:
--------------------------------------------------------------------------------
1 | var menuState = {
2 |
3 | create: function() {
4 | // Name of the game
5 | var nameLabel = game.add.text(game.world.centerX, 80, 'Fatso', { font: '50px Arial', fill: '#ffffff' });
6 | nameLabel.anchor.setTo(0.5, 0.5);
7 |
8 | // Disclaimer
9 | var disclaimer = game.add.text(game.world.centerX, 150, 'PS! This game is a work in progress', { font: '30px Arial', fill: '#ffffff' });
10 | disclaimer.anchor.setTo(0.5, 0.5);
11 |
12 | // How to play
13 | var lbl1 = game.add.text(game.world.centerX, game.world.centerY, "Eat all burges to win", { font: '30px Arial', fill: '#ffffff' });
14 | lbl1.anchor.setTo(0.5, 0.5);
15 | var lbl2 = game.add.text(game.world.centerX, game.world.centerY+40, "Press r to restart", { font: '30px Arial', fill: '#ffffff' });
16 | lbl2.anchor.setTo(0.5, 0.5);
17 |
18 | // How to start the game
19 | var startLabel = game.add.text(game.world.centerX, game.world.height-80, 'press the up arrow key to start', { font: '25px Arial', fill: '#ffffff' });
20 | startLabel.anchor.setTo(0.5, 0.5);
21 | game.add.tween(startLabel).to({angle: -2}, 500).to({angle:2}, 500).loop().start();
22 |
23 | // Add a mute button
24 | this.muteButton = game.add.button(20, 20, 'mute', this.toggleSound, this);
25 | this.muteButton = game.add.button(20, 20, 'mute', this.toggleSound, this);
26 | this.muteButton.input.useHandCursor = true;
27 | if (!game.global.sound) {
28 | this.muteButton.frame = 1;
29 | }
30 |
31 | // Start the game when the up arrow key is pressed
32 | var upKey = game.input.keyboard.addKey(Phaser.Keyboard.UP);
33 | upKey.onDown.addOnce(this.start, this);
34 | },
35 |
36 | toggleSound: function() {
37 | game.global.sound = ! game.global.sound;
38 | this.muteButton.frame = game.global.sound ? 0 : 1;
39 | },
40 |
41 | start: function() {
42 | game.state.start('play');
43 | }
44 | };
--------------------------------------------------------------------------------
/lvl/lvl1.tmx:
--------------------------------------------------------------------------------
1 |
2 |
46 |
--------------------------------------------------------------------------------
/js/play.js:
--------------------------------------------------------------------------------
1 |
2 | var playState = {
3 |
4 | create: function() {
5 |
6 | game.physics.startSystem(Phaser.Physics.ARCADE);
7 |
8 | // Keyboard
9 | this.cursor = game.input.keyboard.createCursorKeys();
10 | this.r = game.input.keyboard.addKey(Phaser.Keyboard.R);
11 |
12 | // Level
13 | this.createWorld();
14 |
15 | // Wabbit
16 |
17 | var result = this.findObjectsByGID(4, this.map, 'Object Layer 1');
18 | this.wabbit = game.add.sprite(result[0].x, result[0].y, 'wabbit');
19 | this.wabbit.anchor.setTo(0.5, 1);
20 | game.physics.arcade.enable(this.wabbit);
21 | this.wabbit.body.gravity.y = 500;
22 | this.wabbit.body.collideWorldBounds = true;
23 |
24 | // Create burgers
25 | this.burgers = game.add.group();
26 | this.burgers.enableBody = true;
27 | this.map.createFromObjects('Object Layer 1', 3, 'burger', 0, true, false, this.burgers);
28 | numberOfBurgers = this.burgers.length;
29 |
30 | // Create lava (deadly tiles)
31 | this.map.setTileIndexCallback(5, this.reset, this);
32 |
33 | },
34 |
35 | update: function() {
36 | game.physics.arcade.collide(this.wabbit, this.layer);
37 | game.physics.arcade.overlap(this.wabbit, this.burgers, this.eatBurger, null, this);
38 | this.movePlayer();
39 | if (this.r.isDown) {
40 | this.reset();
41 | }
42 | },
43 |
44 | movePlayer: function() {
45 | if (this.cursor.left.isDown) {
46 | this.wabbit.body.velocity.x = -300;
47 | }
48 | else if (this.cursor.right.isDown) {
49 | this.wabbit.body.velocity.x = 300;
50 | }
51 | else {
52 | this.wabbit.body.velocity.x = 0;
53 | }
54 | if (this.cursor.up.isDown && this.wabbit.body.onFloor()) {
55 | this.wabbit.body.velocity.y = -500;
56 | }
57 | },
58 |
59 | reset: function() {
60 | game.global.deaths += 1;
61 | game.state.start('play');
62 | },
63 |
64 | eatBurger: function(wabbit, burger) {
65 | burger.kill();
66 | wabbit.body.gravity.y += 150;
67 | numberOfBurgers -= 1 ;
68 | if (numberOfBurgers <= 0) {
69 | if (game.global.level < 3) {
70 | game.global.level += 1;
71 | game.state.start('play');
72 | }
73 | else {
74 | game.global.level = 1;
75 | game.state.start('menu');
76 | }
77 |
78 | }
79 | },
80 |
81 | createWorld: function() {
82 | this.map = game.add.tilemap('lvl' + game.global.level);
83 | this.map.addTilesetImage('tileset');
84 | this.layer = this.map.createLayer('Tile Layer 1');
85 | this.layer.resizeWorld();
86 | this.map.setCollision([1, 2]);
87 | },
88 | // Find objects in a Tiled layer that contain a property called "type" equal to a certain value
89 | findObjectsByGID: function(gid, map, layer) {
90 | var result = [];
91 | map.objects[layer].forEach(function(element){
92 | if(element.gid === gid) {
93 | element.y -= map.tileHeight;
94 | result.push(element);
95 | }
96 | });
97 | return result;
98 | }
99 | };
--------------------------------------------------------------------------------
/lvl/lvl1.json:
--------------------------------------------------------------------------------
1 | { "backgroundcolor":"#184afe",
2 | "height":30,
3 | "layers":[
4 | {
5 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
6 | "height":30,
7 | "name":"Tile Layer 1",
8 | "opacity":1,
9 | "type":"tilelayer",
10 | "visible":true,
11 | "width":40,
12 | "x":0,
13 | "y":0
14 | },
15 | {
16 | "draworder":"topdown",
17 | "height":30,
18 | "name":"Object Layer 1",
19 | "objects":[
20 | {
21 | "gid":3,
22 | "height":0,
23 | "id":1,
24 | "name":"",
25 | "properties":
26 | {
27 |
28 | },
29 | "rotation":0,
30 | "type":"",
31 | "visible":true,
32 | "width":0,
33 | "x":520,
34 | "y":200
35 | },
36 | {
37 | "gid":3,
38 | "height":0,
39 | "id":2,
40 | "name":"",
41 | "properties":
42 | {
43 |
44 | },
45 | "rotation":0,
46 | "type":"",
47 | "visible":true,
48 | "width":0,
49 | "x":220,
50 | "y":460
51 | },
52 | {
53 | "gid":4,
54 | "height":0,
55 | "id":3,
56 | "name":"",
57 | "properties":
58 | {
59 |
60 | },
61 | "rotation":0,
62 | "type":"",
63 | "visible":true,
64 | "width":0,
65 | "x":40,
66 | "y":480
67 | }],
68 | "opacity":1,
69 | "type":"objectgroup",
70 | "visible":true,
71 | "width":40,
72 | "x":0,
73 | "y":0
74 | }],
75 | "nextobjectid":4,
76 | "orientation":"orthogonal",
77 | "properties":
78 | {
79 |
80 | },
81 | "renderorder":"right-down",
82 | "tileheight":20,
83 | "tilesets":[
84 | {
85 | "firstgid":1,
86 | "image":"..\/assets\/tileset.png",
87 | "imageheight":20,
88 | "imagewidth":100,
89 | "margin":0,
90 | "name":"tileset",
91 | "properties":
92 | {
93 |
94 | },
95 | "spacing":0,
96 | "tileheight":20,
97 | "tilewidth":20
98 | }],
99 | "tilewidth":20,
100 | "version":1,
101 | "width":40
102 | }
--------------------------------------------------------------------------------
/lvl/lvl3.json:
--------------------------------------------------------------------------------
1 | { "backgroundcolor":"#1a90ff",
2 | "height":30,
3 | "layers":[
4 | {
5 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
6 | "height":30,
7 | "name":"Tile Layer 1",
8 | "opacity":1,
9 | "type":"tilelayer",
10 | "visible":true,
11 | "width":40,
12 | "x":0,
13 | "y":0
14 | },
15 | {
16 | "draworder":"topdown",
17 | "height":30,
18 | "name":"Object Layer 1",
19 | "objects":[
20 | {
21 | "gid":3,
22 | "height":0,
23 | "id":1,
24 | "name":"",
25 | "properties":
26 | {
27 |
28 | },
29 | "rotation":0,
30 | "type":"",
31 | "visible":true,
32 | "width":0,
33 | "x":220,
34 | "y":200
35 | },
36 | {
37 | "gid":3,
38 | "height":0,
39 | "id":2,
40 | "name":"",
41 | "properties":
42 | {
43 |
44 | },
45 | "rotation":0,
46 | "type":"",
47 | "visible":true,
48 | "width":0,
49 | "x":580,
50 | "y":200
51 | },
52 | {
53 | "gid":4,
54 | "height":0,
55 | "id":3,
56 | "name":"",
57 | "properties":
58 | {
59 |
60 | },
61 | "rotation":0,
62 | "type":"",
63 | "visible":true,
64 | "width":0,
65 | "x":400,
66 | "y":200
67 | }],
68 | "opacity":1,
69 | "type":"objectgroup",
70 | "visible":true,
71 | "width":40,
72 | "x":0,
73 | "y":0
74 | }],
75 | "nextobjectid":4,
76 | "orientation":"orthogonal",
77 | "properties":
78 | {
79 |
80 | },
81 | "renderorder":"right-down",
82 | "tileheight":20,
83 | "tilesets":[
84 | {
85 | "firstgid":1,
86 | "image":"..\/assets\/tileset.png",
87 | "imageheight":20,
88 | "imagewidth":100,
89 | "margin":0,
90 | "name":"tileset",
91 | "properties":
92 | {
93 |
94 | },
95 | "spacing":0,
96 | "tileheight":20,
97 | "tilewidth":20
98 | }],
99 | "tilewidth":20,
100 | "version":1,
101 | "width":40
102 | }
--------------------------------------------------------------------------------
/lvl/lvl2.json:
--------------------------------------------------------------------------------
1 | { "backgroundcolor":"#029aff",
2 | "height":30,
3 | "layers":[
4 | {
5 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
6 | "height":30,
7 | "name":"Tile Layer 1",
8 | "opacity":1,
9 | "type":"tilelayer",
10 | "visible":true,
11 | "width":40,
12 | "x":0,
13 | "y":0
14 | },
15 | {
16 | "draworder":"topdown",
17 | "height":30,
18 | "name":"Object Layer 1",
19 | "objects":[
20 | {
21 | "gid":3,
22 | "height":0,
23 | "id":1,
24 | "name":"",
25 | "properties":
26 | {
27 |
28 | },
29 | "rotation":0,
30 | "type":"",
31 | "visible":true,
32 | "width":0,
33 | "x":600,
34 | "y":520
35 | },
36 | {
37 | "gid":3,
38 | "height":0,
39 | "id":2,
40 | "name":"",
41 | "properties":
42 | {
43 |
44 | },
45 | "rotation":0,
46 | "type":"",
47 | "visible":true,
48 | "width":0,
49 | "x":740,
50 | "y":180
51 | },
52 | {
53 | "gid":3,
54 | "height":0,
55 | "id":3,
56 | "name":"",
57 | "properties":
58 | {
59 |
60 | },
61 | "rotation":0,
62 | "type":"",
63 | "visible":true,
64 | "width":0,
65 | "x":320,
66 | "y":140
67 | },
68 | {
69 | "gid":4,
70 | "height":0,
71 | "id":4,
72 | "name":"",
73 | "properties":
74 | {
75 |
76 | },
77 | "rotation":0,
78 | "type":"",
79 | "visible":true,
80 | "width":0,
81 | "x":360,
82 | "y":440
83 | }],
84 | "opacity":1,
85 | "type":"objectgroup",
86 | "visible":true,
87 | "width":40,
88 | "x":0,
89 | "y":0
90 | }],
91 | "nextobjectid":5,
92 | "orientation":"orthogonal",
93 | "properties":
94 | {
95 |
96 | },
97 | "renderorder":"right-down",
98 | "tileheight":20,
99 | "tilesets":[
100 | {
101 | "firstgid":1,
102 | "image":"..\/assets\/tileset.png",
103 | "imageheight":20,
104 | "imagewidth":100,
105 | "margin":0,
106 | "name":"tileset",
107 | "properties":
108 | {
109 |
110 | },
111 | "spacing":0,
112 | "tileheight":20,
113 | "tilewidth":20
114 | }],
115 | "tilewidth":20,
116 | "version":1,
117 | "width":40
118 | }
--------------------------------------------------------------------------------