Search the Community

Showing results for tags 'help'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • HTML5 Game Coding
    • News
    • Game Showcase
    • Coding and Game Design
  • Frameworks
    • Phaser
    • Pixi.js
    • Babylon.js
    • Panda.js
    • melonJS
    • Haxe JS
    • Kiwi.js
  • General
    • General Talk
  • Business
    • Collaborations (un-paid)
    • Jobs (Hiring and Freelance)
    • Services Offered

Found 139 results

  1. I'm using physics in one of my games, but I'm having trouble getting things to move realistically. I have the player (a bird), and I have objects in a group (trash). The trash I want to be very lightweight, so that it can be knocked around by the bird. Setting mass on both the player and the objects sometimes results in some weird visual stuff, so for now I have taken those lines out. What I really want to solve is the issue of friction. Right now, my code looks like this: this.trash.forEach(function (piece) { piece.anchor.setTo(0.5, 1); piece.body.gravity.y = 5; piece.body.moves = true; piece.body.velocity.setTo(100, 100); piece.body.collideWorldBounds = true; piece.body.bounce.set(0.8); piece.body.friction.x = 1; piece.body.drag.x = 1; }); The trash is gliding around on the floor of the game like wet ice cubes. I thought perhaps introducing another sprite to interact with would help: this.platforms = this.add.physicsGroup(); // Create the ground and set properties. this.platforms.create(0, game.height - 5, 'ground'); this.platforms.setAll('body.allowGravity', false); this.platforms.setAll('body.immovable', true); this.platforms.setAll('body.moves', false); this.platforms.setAll('body.velocity.x', 100); this.platforms.setAll('body.friction.x', 1); this.platforms.setAll('body.drag.x', 1); I'm still watching ice-cube trash. What I'm aiming for is something that can tumble (is there a way to get corresponding rotation on collision to happen?), so I want moving the trash to be more of a shove to move a distance rather than a tap from the player. Thank you for your help!
  2. I'm expanding the phaser tutorial game and i want to add health to the character plus use a plugin i found (https://github.com/matthiaswh/phaser-health-meter). http://phaser.io/docs/2.4.3/Phaser.Component.Health.html I understand nothing in the documentation and i'm clueless on how to add health.
  3. Hi, everyone. I've not been able to find any similar issues to mine, so I'm posting a new topic asking for help. I'm using Phaser 2.6.2 to develop a multiplayer web game. I want a particle emitter to start at the location of the player when a button is pressed, in an explosion. In create(), I have the following code: this.emitter = game.add.emitter(0, 0, 8); this.emitter.makeParticles('seeds'); this.emitter.gravity = 500; I ask the emitter to start later in a custom function called dump(), passing in the player's coordinates. Dump() is called by a function when the variable appleEaten is true and the player is on the right part of the screen. dump: function (x, y) { appleEaten = false; this.emitter.x = x; this.emitter.y = y; console.log(this.emitter.maxParticles); this.emitter.start(true, 1000, null, 8, 8); console.log(this.emitter.x + ", " + this.emitter.y + " is the emitter."); console.log(this.emitter.on); // this is returning false? The program correctly knows how many particles it should spew (8). The emitter is at the correct coordinates based on another console log. However, this.emitter.on console log always returns false. I have the same console log line running in update, and of course it's false every time there, too. Basically, the emitter just doesn't turn on, and I don't know why. I am not getting any errors in the console, either. Has anyone run into this, and/or does anyone have a suggestion on how to approach this? Thank you! EDIT: I load 'seeds' in another state, as with all of my images. When I try to add 'seeds' as an image in create, nothing shows up, and again, no error. I imagine these are separate issues, but I could be wrong.
  4. Hello. I'm really confused about this, what is really the difference of these 3 enabling method of physics body in Phaser? object.physicsBodyType = Phaser.Physics.ARCADE; game.physics.arcade.enable(object); game.physics.enable(object, Phaser.Physics.ARCADE); Are they really the same?
  5. Hi in this states i uploaded my game is so laggy and i notice a bit of stopping after a platform leaves the viewport. It is a simple platformer game, hope you noticed this issue. THanks endlessState.js
  6. Hello! Im new here, and I'd like some help. I was coding, made a new spritesheet and tried making it play while I press a key. It doesn't seem to be working, and I don't know why. If you could help in any way, it'd be greatly appreciated. Thanks! CODE - https://pastebin.com/Sciaw2uY SPRITESHEET -
  7. Hi Guys, I created this post hoping to find people interested in helping on the development and documentations of the unity toolkit. The unity editor allows to put an scene together very easy and export it all ,(lights cameras, meshes etc) with out a line of code How this works? Well @MackeyK24 started developing in visual studio the exporter tool and he saw a way to transform the camera , light or mesh from unity to babylon metadata, then later he add support for animations, splat maps painting, particles system and PBR materials, all of these trough the C# and the unity exporter. Furthermore, I join him on the project 6 months ago and I'm no as good as he is as developer but he took the time to show me and recorded videos to show people how to use it and improve it. I was not easy to pick it up if you dont have a strong object oriented programming skills winch most java script developer lack of, but this is an excellent way to learn or improve your coding skills So if you want to joins us and have some spare time to learn, please feel free to contact me, I can try to put you guys up to speed so we can continue with this great tool for development
  8. Hi, Everyone. this is my first game ( At least the one that got completed). I wanted to make some money out of it. Since this is my first game, I didn't have high hopes. But I got rejected by every sponsor I contacted ( I mean the few who replied). So, Anyone who can give me some pointer on how I can make this game or any future game that I'll be making better. please check out my game lolly match . Any feedback will be appreciated. Thanks in Advance.
  9. Hey Community ! I'm currently using with Friends Phaser for the first time for a school project, and I need your help on 1 point. I'm using Dude as a character and blocks appear, but my problem is Dude can go out of the game Area and the game never restart :/ Any Idea ? Thanks a lot and sorry for my poor english <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Phaser - Making your first game, part 1</title> <script type="text/javascript" src="js/phaser.min.js"></script> <style type="text/css"> body { margin: 100; } </style> </head> <body> <script type="text/javascript"> var game = new Phaser.Game(500, 500, Phaser.AUTO, '', { preload: preload, create: create, update: update }); var player; var platforms; var cursors; var stars; var score = 0; var scoreText; var sky; function preload() { game.load.image('sky', 'assets/sky.png'); game.load.image('ground', 'assets/pipe.png'); game.load.image('star', 'assets/star.png'); game.load.spritesheet('dude', 'assets/dude.png', 32, 48); } function create() { game.physics.startSystem(Phaser.Physics.ARCADE); sky = game.add.sprite(0,0, 'sky'); platforms = game.add.group(); var timer = game.time.events.loop(Phaser.Timer.SECOND, addRowOfPipes, this); // The player and its settings player = game.add.sprite(250, game.world.height - 200, '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.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); cursors = game.input.keyboard.createCursorKeys(); } function update() { game.physics.arcade.collide(player, platforms); game.physics.arcade.collide(stars, platforms); game.physics.arcade.overlap(player, null, this); player.body.velocity.x = 0; if (cursors.left.isDown) { // Move to the left player.body.velocity.x = -250; player.animations.play('left'); } else if (cursors.right.isDown) { // Move to the right player.body.velocity.x = 250; player.animations.play('right'); } /* else if(cursors.down.isDown) { game.state.start(game.state.current); } */ else { // Stand still player.animations.stop(); player.frame = 4; } // Allow the player to jump if they are touching the ground. console.log(player.body); if (cursors.up.isDown || player.body.touching.collideWorldBounds) { game.state.start(game.state.current); } } function addOnePipe(x,y) { // Create a pipe at the position x and y var pipe = game.add.sprite(x, y, 'ground'); // Add the pipe to our previously created group this.platforms.add(pipe); // Enable physics on the pipe game.physics.arcade.enable(pipe); // Add velocity to the pipe to make it move down pipe.body.velocity.y = 150; // Automatically kill the pipe when it's no longer visible pipe.checkWorldBounds = true; pipe.outOfBoundsKill = true; pipe.body.immovable=true; } function addRowOfPipes() { // Randomly pick a number between 1 and 5 // This will be the hole position var hole = Math.floor(Math.random() * 5) + 1; // Add the 6 pipes // With one big hole at position 'hole' and 'hole + 1' for (var i = 0; i < 8; i++) if (i !== hole && i !== hole + 1) { addOnePipe(i * 60 + 10, 0); } } </script> </body> </html>
  10. Hi all. I'm having a weird problem with rotating sprites. When I use Canvas rendering it's fine, but with WebGL rendering, the edges are jagged when I rotate the sprite. The sprite is created from a texture that is made with PIXI.Texture.fromCanvas. I used the HTML-Canvas API to make the simple rectangle. Here's a code pen project that explains better: code. And here are attached pictures of WebGL rendering and Canvas-fallback rendering. Any help fixing this would be greatly appreciated
  11. Hello, I am pretty new to Phaser and also to JavaScript and while coding a game I keep on getting this error " TypeError: Argument 1 of CanvasRenderingContext2D.drawImage could not be converted to any of: HTMLImageElement, HTMLCanvasElement, HTMLVideoElement, ImageBitmap." I have been stuck on it for a day or so and I would like to see if someone could help me find where the problem is. I have been following a few tutorials i find on the web on how to work with Phaser and js here is a pastebin of the code. http://pastebin.com/2CScJnH6
  12. Hello, I'm very new to Javascript (and coding). I just finished my first game, a clone of Pong. I have it controlled via the mouse movement, now I'd like to add code that will let the user swipe up or down on a touchscreen and have that relate the to controls for the mouse. Any Help would be appreciated. Thanks in advance. Here is what I have for my mouse controls. window.onload = function() { canvas = document.getElementById('gameCanvas'); canvasContext = canvas.getContext('2d'); var framesPerSecond = 30; setInterval(function() { moveEverything (); drawEverything(); }, 1000/framesPerSecond); canvas.addEventListener('mousedown', handleMouseClick); canvas.addEventListener('mousemove', function(evt) { var mousePos = calculateMousePos(evt); paddle1Y = mousePos.y - (PADDLE_HEIGHT/2); }); } code help.tiff
  13. Hello, I have searched a solution for a problem for long time and didn't found, if someone have some ideas I am taking all x) did someone know if it's possible to rotate a group of bodies around an anchor point, I set some bodies for invisble walls and my objective is to turn them around by 90° around an anchor point, I know It must be not very comprehensive so I set up an Image to explain myself. In the screen, I have 2 bodies and I want them to turn around the red dot what must be my anchor point, I know it's impossible in arcade so I tried in P2 physics and impossible to found any solution :/ Thanks for reading, feel free to leave a feedback
  14. In the phaser docs I can see that the biggest difference between Sprite and Image is that you cannot animate or add a physics body to an Image, but in Image properties you can see an animationManager. I'm a little confused about this. Anyone?
  15. Hello: So I'm trying to make a bubble popping game where once the balloon pops it shows an animation before getting deleted off the screen. but I can't get the enemy.animations.play() to work if it's in a different function, but once I place it in the create function it works fine so it's not a syntax error(i think). This is where I initialize the enemy playState.prototype.spawnEnemies = function(){ if (this.waveProperties.counter > 0) { while (this.waveProperties.active < this.waveProperties.max / 2) { var type = Phaser.ArrayUtils.getRandomItem(["enemyLarge", "enemyMed", "enemySmall"]); var enemy = this.enemies.create(null, null, enemyProperties[type].img); enemy.reset(game.rnd.integerInRange(80, 1400), game.rnd.integerInRange(50, 400)); enemy.anchor.setTo(0.5, 0.5); enemy.body.collideWorldBounds = true; enemy.body.bounce.set(1); enemy.body.allowGravity = false; enemy.animations.add('pop', [1,2,3,4,5],30,false); enemy.body.velocity.y = game.rnd.integerInRange(enemyProperties[type].minV, enemyProperties[type].maxV) * game.rnd.pick([-1, 1]); enemy.body.velocity.x = game.rnd.integerInRange(enemyProperties[type].minV, enemyProperties[type].maxV) * game.rnd.pick([-1, 1]); enemy.nextSize = enemyProperties[type].nextSize; enemy.hp = enemyProperties[type].hp; enemy.dmg = enemyProperties[type].dmg; enemy.points = enemyProperties[type].points; enemy.bubbleSfx = game.add.audio('bubbleSfx'); enemy.bubbleSfx.allowMultiple = true; this.waveProperties.counter -= enemyProperties[type].points; this.waveProperties.active += enemyProperties[type].points; } } else { console.log("Next wave started.."); //add text that shows PREPARE FOR NEXT WAVE here. this.waveProperties.max *= 2; this.waveProperties.timeCheck += this.waveProperties.timeCheck; this.waveProperties.counter = this.waveProperties.max; } }; this is where it checks if the bullet collided with the enemy and if health is 0 it will play the animation then get destroyed playState.prototype.hitEnemy = function(bullet, enemy){ switch(bullet.key){ //checks which kind of weapon hit the enemy by looking at it's image name case 'bullet' : enemy.hp -= 10; break; } bullet.kill(); //bullet dies on impact if (enemy.hp <= 0) { enemy.animations.play('pop'); this.bEmitter.x = enemy.x; this.bEmitter.y = enemy.y; enemy.bubbleSfx.play(); this.bEmitter.start(true,2000,null,20); enemy.destroy(); this.splitEnemy(enemy.nextSize , enemy.x, enemy.y); this.waveProperties.active -= enemy.points; } }; if anyone could help me it would be greatly appreciated I'm at a loss atm.
  16. I need help. I was following a tutorial online for the Phaser States, and I did everything right (I think), but obviously, I've made some changes myself to fit to what I kind of want. Here is the code: var loadState = { preload: function() { // Load the BG Images (Before so we can have an awesome looking loading screen) game.load.image('redPlanet', '././assets/images/redplanet.png'); game.load.image('spaceBG', '././assets/images/spaceBG.png'); // Preload the one character we need to look awesome! game.load.image('scavenger', '././assets/images/Scavenger.png'); // Add the loading label and the character, so the player doesn't think the game crashed. var background = game.add.sprite(0, 0, 'spaceBG'); background.scale.setTo(0.6); var character = game.add.sprite(80, 150, 'scavenger'); var loadingLabel = game.add.text(0, 0, 'Loading...', {font: '30px Courier', fill: '#fff'}); loadingLabel.alignTo(character, Phaser.RIGHT_CENTER, 16); // Load the Planet Images game.load.image('planet1', '././assets/images/Planet1.png'); game.load.image('planet2', '././assets/images/Planet2.png'); game.load.image('planet3', '././assets/images/Planet3.png'); game.load.image('planet4', '././assets/images/Planet4.png'); game.load.image('planet5', '././assets/images/Planet5.png'); game.load.image('planet6', '././assets/images/Planet6.png'); game.load.image('planet7', '././assets/images/Planet7.png'); game.load.image('planet8', '././assets/images/Planet8.png'); game.load.image('planet9', '././assets/images/Planet9.png'); game.load.image('planet10', '././assets/images/Planet10.png'); game.load.image('planet11', '././assets/images/Planet11.png'); game.load.image('planet12', '././assets/images/Planet12.png'); game.load.image('planet13', '././assets/images/Planet13.png'); game.load.image('planet14', '././assets/images/Planet14.png'); // Load the pause button game.load.image('pauseButton', '././assets/images/pauseButton.png'); } create: function() { game.state.start('menu'); } } And that is not all. Every single one of my state files has an error that says: Expected '}' to match '{' from line 1 and instead saw 'create'. Missing Semi-Colon. Unrecoverable Syntax Error (93% Scanned) Please help me, as this was going to be the way I made my game because I really like how organized states are!
  17. Alright. I'll cut to the chase. I'm making a simple game about abducting people, and I want the victims to run from the player or "flying saucer". This is what I have setup in the update function (I'm pretty sure the rest is irrelevant, but tell me if you need more): this.win.angle = game.physics.arcade.angleToXY(this.win, -(this.player.x), -(this.player.y)); this.win.velocity = game.physics.arcade.velocityFromAngle(this.win.angle, 145, this.win.body.velocity); game.world.wrap(this.win, 0, false); Now here is the error after getting to the "play" state (Oh and by the way, the game is based off of the state tutorial for phaser, except with a lot of edits and a lose.js file.): Uncaught TypeError: d.setTo is not a function at c.Physics.Arcade.velocityFromAngle (phaser.min.js:23) at Object.update (play.js:94) at c.StateManager.update (phaser.min.js:10) at c.Game.updateLogic (phaser.min.js:12) at c.Game.update (phaser.min.js:12) at c.RequestAnimationFrame.updateRAF (phaser.min.js:18) at window.requestAnimationFrame.forceSetTimeOut._onLoop (phaser.min.js:18) Please help!
  18. Hi! I was wondering if anyone would like to help me with the first steps of my 'little' proyect I'm a complete beginner to both phaser and game developing. I'm studying multimedia engineering so I am indeed familiar with HTML5, CSS, JavaScript, among some more scripting languages, but I've never tried implementing something as big as a game before- What I want to make is a virtual pet, (yeup. you read right), yet I intend to knock up the IA so the pet feels more natural, as well as some other features. It's basically an easily-expandable first proyect that I think will allow me to start with a very simple base and add layers of complexity as I get more experience. I chose to implement it using phaser and focus on a browser-game so It's easily accesible to the public and I can use the mobile phone for complementary actions in the long run- I still have no idea on how or what tools would be best to implement the user/pet database and gameServer. All I have right now, it's a simple, general and conceptual web-responsive layout and the empty major game states (menu, the room, etc), so my web looks like this: My major doubts are: 1. whether web-browser games usually work with this kind of layout or It'd be more beneficial to have the gamescreen (blue) covering the entirety of the viewport's size 2. Are the database and server coded first, or should I first focus on the different state's UI and work my way up to having the core mechanics roughfly implemented, then adding requests to the server? 3. I'd like to add some kind of system which allows me to read an external file, interpret it and place the game's dialog / calls for an event with the guide NPC / similar actions- something akin to what happens in some RPGs or in visual novels. I imagine this is done by designing my own 'dialog' structure in a JSON or XML file (which would be later on stored in my database for the client browser to download and cache) and parsing them? How it's this usually done? My apologies if what I'm asking is very basic stuff, I really don't know where nor how should I start. I've followed several 'make your first game' tutorials on phaser's website, but they're nowhere near as complex as to help me understand the general workflow in a multi-state + actors + connectivity proyect.
  19. Hi there folks! It's been a while since I posted something in here, glad to be back! I have a fair amount of experience in game development using JS Canvas, but recently I decided I had move on - so I went with Pixi. I figured out the basics of how to add sprites, do filters and such, but I just can't seem to figure out how to do simple lines and then manipulate them afterwards. What I mean is something like this: https://jsfiddle.net/gustavgb/anxcjfof/5/ I noticed that PIXI.Graphics has an object attached to it called "graphicsData" in which I can find the points that make up the line - great - but when changing the value of these variables, nothing happens to the appearance of my line. I'd appreciate any help, as I'm quite new to Pixi Thank you!
  20. There are a lot of things you can do to help get your questions answered faster. This announcement will provide some tips to get you unstuck as soon as possible. The first, and most important thing to do is ALWAYS develop your game with the most recent non-minified melonJS build. Switch to the minified build for your final release; never before that point. Follow the tips in the other announcement: https://groups.google.com/forum/#!topic/melonjs/SvC8ZNJ3P_c Familiarize yourself with the debugger in your browser/user agent. You are writing a lot of JavaScript to create a full game, perhaps more than most web developers will in their entire careers. If you are not using a debugger, you are shorting yourself, and extending development time greatly. Enable the "pause on all uncaught exceptions" feature in your debugger; this should be the first thing you configure when you open the debugger for the first time. console.log() and alert() are simple to use, but breakpoints are better in every imaginable way; they are temporary, can be enabled and disabled at runtime without modifying the JavaScript, and allow you to inspect variable state at any point in the program's execution. Learn to follow stack traces so you can understand how the code eventually leads up to specific events, like uncaught exceptions. If your game runs slow, use the profiler in your debugger to pinpoint functions that take up the most time, and try to minimize how often the slow functions are called, or make the slow functions faster! If you've done the above and still need a little boost in the right direction, please include the full source code for your game. It is often not enough to paste code snippets in the body of your message, because there are times when the issue lies in an area of the code you hadn't considered. We can use the techniques described above to find and solve a very wide range of issues, but only if we are able to run the code ourselves. If you have found a true bug in the melonJS engine (not just a support request), please search the github issues for similar reports, and file a new ticket if you don't find anything: https://github.com/melonjs/melonJS/issues This is the best way to get bugs in the engine solved quickly. If you are having trouble with the tutorial, it has its own git repository and issue tracker: https://github.com/melonjs/tutorial-platformer
  21. Hello everyone, this is my first time posting on this forum, which means I'm pretty desperate at this point haha! I'm trying to make a simple game where a character is sliding down a hill, this is what I got so far: http://chewyrabbit.com/game.php I want to make the hill as slippery as ice, just like some ice parts in this game: http://test.xapient.net/phaser/ALL/ I learned a lot from this game btw. I tried to copy how the user made his ice material, but it doesn't seem to work in my game! // Create ramp and player from tiles sharp = this.game.physics.p2.convertCollisionObjects(map,"points"); player = this.game.add.sprite(10,10, 'player'); // Define materials groundMaterial = this.game.physics.p2.createMaterial(); playerMaterial = this.game.physics.p2.createMaterial('player'); // Give the ramp material for (i=0; i<sharp.length; i++){ sharp[i].setMaterial(groundMaterial); } // define what happens when one material contacts the other this.game.physics.p2.createContactMaterial(playerMaterial, groundMaterial, { friction: 0 , restitution: 0 }); What am I doing wrong? Please help me
  22. I need some help with my Uni project that I made using Phaser. My game is a simple plat former. I have been working on the Player controls, but for some reason I keep getting :"Uncaught TypeError: Cannot read property 'isDown' of undefined" Game.level1 = function (game) {}; //variables var map; var layer; var player; var controls = {}; var playerSpeed = 150; var jumpTimer = 0; Game.level1.prototype = { create:function(){ this.stage.backgroundColor = '#e6ffff'; this.physics.arcade.gravity.y = 1400; map = this.add.tilemap('map', 32, 32); map.addTilesetImage('tileset'); layer = map.createLayer(0); layer.resizeWorld(); map.setCollisionBetween(0,2); player = this.add.sprite(100,561,'player'); player.anchor.setTo(0.5,0.5); player.animations.add('idle', [0,1], 1, true); player.animations.add('jump', [0,2], 1, true); player.animations.add('run', [3,4,5,6,7,8], 7, true); this.physics.arcade.enable(player); this.camera.follow(player); player.body.collideWorldBounds = true; var controls = { right : this.input.keyboard.addKey(Phaser.Keyboard.RIGHT), left : this.input.keyboard.addKey(Phaser.Keyboard.LEFT), up : this.input.keyboard.addKey(Phaser.Keyboard.UP), }; }, update : function () { this.physics.arcade.collide(player,layer); if(controls.up.isDown){ player.animations.play('jump'); } if(controls.right.isDown){ player.animations.play('run'); player.scale.setTo(1,1); player.body.velocity.x += playerSpeed; } if(controls.left.isDown){ player.animations.play('run'); player.scale.setTo(-1,1); player.body.velocity.x -= playerSpeed; } if(controls.up.isDown && (player.body.onFloor() || player.body.touching.down) && this.time.now > jumpTimer){ player.body.velocity.y = -600; jumpTimer = this.time.now +750; } } } Could anyone tell me what I am doing wrong ?
  23. Is it possible to get payed for my games even though my company isn't registered yet. See, I'm currently a foreigner in the country I'm currently living in and so I can't open a business (sole proprietorship). So if anyone has any advice or experience with getting payed without actually having a business name, I would like to here your opinion.
  24. help

    I'm trying to use Phaser (2.6.2) to mask an image. I need a circle, but the circle drawn has very jagged edges. How can I get a smoother circle? I've tried `drawArc`, `drawCircle`, and drawing a smaller circle but scaling up (for intentional scaling artifacts) Pasting this into http://phaser.io/sandbox/edit/1 illustrates it pretty clearly function create() { var game = this.game var graphics2 = game.add.graphics(0, 0); graphics2.beginFill(0x0000FF, 1) graphics2.drawCircle(0, 0, 100) graphics2.scale.set(12) var graphics = game.add.graphics(0, 0); graphics.beginFill(0x00FF00, 1) graphics.arc(0, 0, 500, game.math.degToRad(0), game.math.degToRad(360), false); graphics.beginFill(0xFF0000, 1); graphics.drawCircle(0, 0, 800); }
  25. Hello, I have a problem with adding tile maps to my phaser game. I know how to add one tile map, but I can't add multiple tile maps. I want two things, which are that I want to add these tile maps, but I also want collision between the turtle and all of the four layers. I didn't add the tile maps already to my game, because of the fact that I can't display the tilemap on my screen. I don't know why.... I get a few error's, which you can see in the images below. Does anybody knows a solution for my problem(s)? My code: var road; var turtle; var controls = {}; var Background; var Finish; var Grass; var Cars; var playState = { preload: function(){ game.load.tilemap('map', 'assets/road.json',null, Phaser.Tilemap.TILED_JSON); game.load.image('tiles', 'assets/road.png'); this.load.image('turtle', 'assets/turtles.png'); }, create:function(){ this.physics.startSystem(Phaser.Physics.ARCADE); map = game.add.tilemap('map'); map.addTilesetImage('road','tiles'); Background = map.createLayer('Background'); Background.resizeWorld(); Background.setCollisionBetween(4, 325); game.physics.arcade.enable(Background); Finish = map.createLayer('Finish'); Finish.resizeWorld(); Finish.setCollisionBetween(4, 15); game.physics.arcade.enable(Finish); Grass = map.createLayer('Grass'); Grass.resizeWorld(); Grass.setCollisionBetween(0, 325); game.physics.arcade.enable(Grass); Cars = map.createLayer('Cars'); Cars.resizeWorld(); Cars.setCollisionBetween(18,309); game.physics.arcade.enable(Cars); //Turtle this.turtle = this.add.sprite(440,450,'turtle'); this.physics.arcade.enable(this.turtle); this.turtle.enableBody = true; this.turtle.anchor.setTo(0.5); this.turtle.scale.setTo(0.2); this.turtle.body.allowGravity = false; this.turtle.body.immovable = true; this.controls = { left: this.input.keyboard.addKey(Phaser.Keyboard.LEFT), right: this.input.keyboard.addKey(Phaser.Keyboard.RIGHT), }; }, update:function(){ this.turtle.body.collideWorldBounds = true; this.turtle.body.velocity.x = 0; if (this.controls.left.isDown){ this.turtle.body.velocity.x = -200; } if (this.controls.right.isDown){ this.turtle.body.velocity.x = 200; } }, gameover:function(){ game.state.start('over'); }, Finish:function(){ game.state.start('win'); } }; My JSON file { "height":326, "layers":[ { "compression":"zlib", "data":"eJy0+GXU1dX6Bmz\/Nynd3Snd3aB0d5d0d3d3d3e3dHephEoo3SAlIKCS78Gnd\/PbjOfT86zhMVznteac57rvtaaoIf7v\/\/4vJKEI\/X\/\/+0hLOtKTgYxkIjNZyEo2spODnOQiN3nISz7yU4CCFCIZyUlByi\/0lqI0ZShLOcpTgYpUojJVqEo1qlODmtSiNnWoSz3qU4SiFOObL\/S2oCWtaE0b2tKO9nSgI53oTBe60o3u9KAnvehNH\/rSkEY05rsv9A5nBCMZxWjGMJZxjGdCYM8UpjKN6cxgJrOYzRz6M4CBDGIRi1nCUpaxnBWsZBWrWcNa1rE+0Ps9m9nCVraxnR3sZBfzmM8CFnKAgxziMEc4yjGOc4KT\/MCP\/MSpQO\/P\/MKvnOM8F7jIb\/zOHvayj\/1c5wY3ucVt7nCXe9znAX\/wkEc8DvQ+4zkv+IuXvOI1f\/MPl7nCVa7xgY+fNv\/HX\/\/5v\/95hDELy1eEIzwRiEgkIhOFqEQjOjGISSxiE4c3znrLO96TyCwxSUj6hd5UZqn5mjSkJR3pyUBGMpGZLGQlG9nJQU5yEY\/4JCAhBShIIQp\/ofdbs+KUoCSlKE0ZylKO8lSgIpWoTBWqUo3q5CEv+chPXepRnwZf6G1i1pRmNKcFLWlFa9rQlna0pwMd6URnutCVmtSiNnXoTR\/60o\/+DGAggxjMEIYyjOGMYCSjGM0YxjKO8UxgIpOYzBS604Oe9GIWs5nDXOYxnwUsZBGLWcJSlrGcFaxkFatZw1rWsZ4NbGQT3zON6cxg5hd+r\/9vPU47+wxn+ZktbGUb2\/8\/7H3i7Kf8yTN+5RznufD\/YW\/EEO43kYnCC11\/8ZJXxDKLTRziEo\/4JCAhiUhMEpKSjOSkICWpSM3XpCEt6UhPBjKSiWhEJwYxyUFOcpGbPOQlH\/kpQEEKUZgiFKUY3\/AtxSlBSUpRmjKUpRzlyUJWspGdqlSjOjWoSS1qU4e6If73d9jIrDHf0YSmNKM5LWhJK1rThrZUpBKVqUJnutCVbnSnBz3pRe8v9A4wG8ggBjOEoQxjOCMYyShGM4b2dKAjnZjEZKYwlWlMZwYzmfWF3vlmC1jIIhazhKUsYzkrWMkqVjOO8UxgIhvZxPdsZkugZ8cXevea7WM\/BzjIIQ5zhKMc4zgnOMla1rGeDZzhLD\/zC78Gei7Kv\/E7l7jMFa5yjevc4Ca3uM0d7nKP+zzgR37iFKd5yp884zkvAr2v5b\/5h395w1ve8Z4PfPy0x78c\/4cQhCQUoQlDWB5a84jHPCGSWWSiEJVoIT\/vjSXHJg5xiUd8EpCQRCQmCUlJRnJSkJJUpCYc4YlARDKQkUxkJgtZyUZ2cpCTXOQmD3kD762gXIjCFKEoxfiGbylOGtKSjvSUpRzlqUBFKlGZKlSlGtWpQU1qBXrryfVpQEMa0ZjvaEJTSlKK0pShNW1oSzva04GOdKIzXehKN7rTI9DbR+5LP\/ozgIEMYjBDaE4LWtKKUYxmDGMZx3gmMJFJTGYKU5nG9EDvbHkOc5nHfBawkEUsZhjDGcFIVrKK1axhLetYzwY2sonv2cwWtrKN7exgJ7vYzR72so\/9HOAgS1nGclZwnBOc5IfAz\/HpccbsLD\/zC79yjvNc4CK\/8TuXuMwVrnKN69zgMEc4yjHucZ8H\/PGF3qdmf\/KM57zgL17yitf8zT\/8yxve8o73fOAjt7jNHe4S2n8IhyEsX4X6395IZpGJQlSiEZ0YxCQWsYlDXOIRnwQkJBGJ+Q8hCEkoUpKK1Hz9hd4MZhnJRGaykJVsZCcHOclFbvKQl3zkpwAFSUoykpOCb\/iW4pSg5H91l\/G8LOUoTwUqUonKVKEq1ahODWpSi9rUoS71KEwRilKM72hCU5rRnBa0pBWtaUNb2tGeDnSkE53pQle60Z0e9KQXvelDAxrSiMYMYjBDGMowhjOCkYwK\/O7HyeOZwEQmMZkpTGUa05nBTGYxm370ZwADWcgiFrOEpSxjOStYGehdK69jPRvYyCa+ZzNb2Mo2trODncxlHvNZwH4OcJBDHOYIRznG8UDvj\/JPnOI0ZzjLz4F15+ULXOQ3drOHvezjGte5wc3A3k+Pe4HZQ\/kRj3nCU\/7kWWDdS\/kVr\/mbS1zmCld5zwc+ftr3hf+hFTowCyeHJwIRiURkogTWxZBjEovY\/Ov8N7zlXeA9JvlCb0qzVKTma9KQlnSkJwMZyRTYm03OTg5yEpd4xCdBYG2hL\/R+Y\/YtxSlBSUpRmjKUpRzlA3sry1WoSjVyk4e85AusrS83+K9ZY8+\/owlNaUZzWtCSVrSmDW1pR3s60JFOdKYLNahJLWoHevvK\/ejPAAYyiMEMYSjDGM4IRjKK0YxhLOMYzwQmMonJdKM7PejJzP\/qnuP5XOYxnwUsZBGLWcJSlrGcFaxkFatZw1rWsZ4NbGQTU5nGdGawnR3sZBe72cNe9rGfAxzkEIc5wlGOcZwTnOQHfuQnTnGaM5xlM1vYyjYucJHf+J1LXOYKV7nGdW5wk1vc5g53ucd9HvAHD3nEY57wlD\/5hV85x3le8Zq\/+Yd\/ecNb3vGeD3z89HmE8ecoIQgZ5vPvRlj5K8IRnghEJBKReW7\/C\/7iJTHNYhGbOMQlHvFJQMLA+UnlZCQPzFPLX5OGtKQjPRnISFSiEZ0YZCcHOclFbvKQl3zkD5xfWC4SmAUfpbxemjKUpRyZyUJWslGFqlSjOjWoSS1qUyfQ0UBuSKP\/h+4WXmtJK1rThgpUpBKV6URnutCVbnSnBz3pFTi\/n9yfAQxkEIMDa4bLIxjJKEbTjvZ0oCMTmcRkpjCVaUxnBjOZxWzmMJd5zGcBC1kU6F0mL2cFK1nFWMYxnglsYCOb+J7NbGEr29jODnayi93sYS\/72M8BDnKIwxzhKMc4zgnWsJZ1rOc0ZzjLz\/zCr5zjPBe4yG\/8ziUuc4WrXOM6N7jJLW5zh7vc4z4\/8CM\/cYonPOVPnvGcF\/zFS17xmr\/5h395w1ve8Z4PfPz0uw7rfhOCkIQiNGH4w+sPecRjIppFIjJRiEo0ohODmMQiNnGISzzik4CEJCIxSUhKMpKTgpSk4ivCEZ4IpCcDGclEZrKQlWxkD\/u\/9ySPWV7ykZ8CFKQQhSlCUYrxDd\/yNWlISzrKUJZylKcCFalEZap8obemWS1qU4e61KM+DWhIIxrzHU0oQUlKUZpWtKYNbb\/Q0ekLs+5mPehJL3rTh770oz8DGMggBtOM5rSgZeDMMV\/omPiF2TSz6cxgJrOYzRzmMo\/5LGAhixjKMIYzInDm6i90bDDbyCa+ZzNb2Mo2trODnYG9e+V97OcAS1jKMpYH1p78Qu9pszOc5Wd+4VfOcZ4LXOS3wN4r8lWucZ1DHOYIRwNrH8h\/8JBHPOYJT\/mTZzznBX\/xkle85u\/AWW\/ld7znAze5xW3uEOord5swhOUrwhGeCEQkEpGJQlSiEZ0YxCQWsb\/6vDe+nICEJPr0Gv8hBCFJQUpSkZqvSUNa0pGeDGQkE5nJQlaykZ0c5CQXuclDXvKRnwIkISnJSE4xvuFbilOCkpSiNGUoSznKU4GKVKIyVahKNapTg5rUojZ1qEshClOEojTmO5rQlGY0pwUtaRX4\/X16tDfrQEc60ZkudKUb3elBT3rRm\/o0oCGNGMggBjOEoQxjOCMY+YXecWbjmcBEJjGZKUxlGtOZwUxm0Zd+9GcAC1jIIhazhKUsYzkrvtC71mwd69nARjbxPZvZwla2sZ0dzGEu85jPPvZzgIMc4jBHOMqxL\/T+aPYTpzjNGc7yM7\/wK+c4zwUusovd7GFv4Mwb8k1ucZs73OUe93nAHzzkEY95wlP+5BnPecFfvOQVr\/mdS1zmSqD346cczj0jBCEJRWjCEJavCEd4IhCRSEQmClGJRnRiEJNY\/OPsf3nD20BvYq8nISnJSE4KUpKK1HxNGtKSjvRkICOZyEwWspKN7OQgDnGJR\/xwn\/cWlAtRmCIUpRjf8C3FKUHJwL6ycjnKU4GKVKIyVahKLnKTh7zUpg51qUd9GtCQRjTmO5rQlGY0D\/S2ltvQlna0pwMd6URnqlODmtSiJ73oTR\/60o\/+DGAggxjMEIYyLNA7Sh7NGMYyjvFMYCKT6Eo3utODGcxkFrOZw1zmMZ8FLGQRi1nC0kDvSnkVq1nDWtaxng1sZApTmcZ0trGdHexkF7vZw172sZ8DHOQQhznCUY5xnBOc5Ad+5CdOcZozfM9mtrCV81zgIr\/xe+BnuSpf4zo3uMktbnOHu9zjPg\/4g4c84jFPeMrP\/MKvnOMlr3jN3\/wT6H0nv+cDHz+9Ft79JgQhCUVowhCWrwhHeCIQkUg8s\/c5L\/iLGGYxiUVs4oT\/vDdBICeRk5KM5KQgJalIzdekIS3pSE8GohCVaEQnG9nJQU5yBXryBXIhuTBFKEoxvuFbilOCkpSiNGUoSyYyk4WsVKYKValG9UBP7UCuLzegIY1ozHc0oSnNaE4LWtKK1pSnAhWpREc60ZkudKUb3elBz0BvX7kf\/RnAQAYx+L\/WDfN8OCMYySja0o72dGACE5nEZKYwlWlMZ0agd448l3nMZwELA2uWystYzgpWMoaxjGM869nARjbxPZvZwla2sZ0d7GQXu9nDXvaxP9B7WD7CUY5xnNWsYS3rOMVpznCWn\/mFXznHeS5wkd\/4nUtc5gpXuRbovSXf5g53ucdJfuBHfuIxT3jKnzzjOS\/4i5e84jV\/8w\/\/8oa3vON9oPc\/EdxvQhKK0Dyw5g8e8iiwPrLXoxCVaEQnBjGJRWziEJd4xCcBCUlEYpKQlGQkJwUpCctXhCN8hM97M8qZyEwWspKN7OQgJ7nITR7yko\/8FKAghShMEYpSjG9IzdekIW2gt5xcngpUpBKVqUJVqlGdGtSkFrWpQ13qUZ8GNKQRjfmO4pSgJKUCvW3ktrSjPR3oSCc604WudKM7PehJL3oHzuovD2Agg2hKM5rTghGMZBSjGcNYxjGeCUxkEpOZwlSmMZ0ZzGRWoHeePJ8FLGQIQxnGcJazgpWsYjVrWMs61rOBjWziezazha1sYzs7Ar175L3sYz+LWcJSlnGUYxznBCf5gR\/5iVOc5gxn+Zlf+JVznOcCFwO9l+UrXOUaBznEYY5wh7vc4z4P+IOHPOJx4Lxn8nNe8BcvecVr\/uYf\/uUNb3nHe25wk1vcJmREd5vQhCEsXxGO8ESI+HlvFDkq0YhODGISi9jEIS7xiE8CEvLx0\/v39\/8QguSkICWpSM3XpCEt6QK9meTMZCEr2chODnKSi9zkIS\/5yE9ikpCUZBSlGN\/wLcUpQUlKUTrQW16uQEUqUZkqVKUa1alBTWpRmzoUpBCFKUIjGvMdTWhKM5rTgpa0ojVtaEs72gfeT2e5C13pRnd60JNe1KM+DWjIAAYyiMEMYSjDGM4IRjKK0YxhLOMCvZPkyUxhKtOYzgxm0oe+9KM\/81nAQhaxmCUsZRnLWcFKVrGaNawN9G6UN\/E9m9nCVraxndnMYS7z2Ms+9nOAgxziMEc4yjGOc4KT\/MCPgd4z8ll+5hd+5RznucBOdrGbPVzhKte4zg1ucovb3OEu97jPA\/7gIY94zBOe8ifPeM4L\/uIlr\/iN37nEZd7yjvd84OOnnyOSe0YIQhKK0IQhLF8RjvBEICKRiEwUohKN6MQgJn879x\/+5Q3xzRKQkEQkJglJSUZyUpCSVKTma9KQlnSkJwMZyURmspCVbGQnNnGISzzyko\/8FKAghShMEYpG+vxzLC6XoCSlKE0ZylKO8lSgIpWoTBVykovc5KEWtalD3UDHp0ejwKyp3IzmtKAlrWhNG9rSjvZ0oCOdqEZ1alCTHvSkF72\/0DsgMBsiD2UYwxnBSEYxmjGMZRzjmcBEutCVbnQPnDnrC73zA7PF8hKWsozlrGAlq1jNGtayjvVsYDJTmMq0wJk75J3\/Ndvj+V72sZ8DHOQQhznCUY5xnBOc5Ad+5CdOcZpNfM9mtgR6L8q\/8TuXuMwVrnKN69zgJre4zR3uco\/7POAPHvKIxzzhLD\/zC78Gel\/Lf\/MP\/\/KGt7zjPR\/4+GlPZPebEIQkFKEJQ1i+IhzhiUBE\/rTvGc95QXSzGMQkFrGJQ1ziEZ8EJCQRiUlCUpKRnBSRP3\/\/X8tpSEs60hOZKEQlGlnJRnZykJNc5CYPeclHfgpQkEIUpghFKRboLSGXpBSlKUNGMpGZLFSiMlWoSjWqU4Oa1KI2dahLPerTgIY0onGgt5ncnBa0pBXlKE8FKtKBjnSiM13oSje604Oe9KI3fehLP\/ozgIGB3qHyMIYzgpG0oS3taM94JjCRSUxmClOZxnRmMJNZzGYOc5nHfBawkEUsZglLWcZyVjCaMYxlHOtYzwY2Bt73p8dWs21sZwc72cVu9rCXfeznAAc5xGGOcJRjrGI1a1jLT5ziNGe+0HvO7DwXuMhv\/M4lLnOFq1zjOje4yS1uc4e7nOAkP\/Ajj3jME55+ofcvs5e84jV\/809g3Tv5PR\/4+Om1KO43IQhJKO6bP+APHhLeLAIRiRTlf3ujm8UgJrGITZzAugRyQhKRmCQkJRnJSUEYwvIV4UhLOtKTgYxkIjNZyEo2spODnOQK9OaT81OAghSiMEUoSjFSkZqvSUMpSlOGspSjPBWoSCUqU4WqVKN6oLe2XIe61KM+DWhIIxrzLcUpQUla0JJWtKYNbWlHezrQkU50pgtdA7095V70pg996Ud\/BjCQJjSlGc0ZzghGMorRjGEs4xjPBCYyiclMYSrTmM4MZjKL2cxhLvOYzwIGM4ShDGMZy1nBSlaxmjWsZR3r2cBGNvE9m9nCVraxnR3sZBe72cNe9rGIxSxhKUc4yjGOc4KT\/MCP\/MQpTnOGs\/zML\/zKOc5zgYv8xu9c4jJXuMoBDnKIw9zmDne5x30e8AcPecRjnvCUP3nGc17wFy95xWv+5h\/+5Q1vecd1bnCTW4SI6m4TitCEISxfEY7wUf\/3Tkcxi0o0ohODmMQiNnGISzzik4APuj7yf57\/h2QkJwUpSUVqviYNab\/Qm8ksM1nISjayk4Oc5CI3echLPhKRmCQkpQhFKcY3fEtxSlCSUl\/oLW9WgYpUojJVqEo1qlODmtSiNgUoSCEK05BGNOY7mtCUZjSnxRd625q1oz0d6EgnOtOFrnSjOz3oSV3qUZ8G9GcAAxnE4EDPcHkEIxnFaMYwlnGMZwITmcRkpjCVaUxnBr3pQ1\/6MY\/5LGAhiwK9y+TlrGAlq1jNGtayjvVsYCOb+J7NbGEr25jFbOYwlz3sZR\/7ORDoPSIf5RjHOcHJwJpT8mnOcJaf+YVfOcd5drCTXezmMle4yjWuB868Ld\/hLve4z4PAmsfyk8DsufyCv3jJRX7jdy7xhre84z0f+PjpjGjuGSEISShCE4aw0T7viCBHDMyiytGITgxeO\/Nv\/uFf4pnFJwEJSURikpCUZCQnBSlJRepARzo5fWCWWc5CVrIRi9jEIS55yEs+8lOAghSiMEUoSjG+4VuKU4KSlKI0ZQK9FeSKVKIyOchJLnJTk1rUpg51qUd9GtCQRjTmO5rQlGY0pwUtaUVr2tCWdrSnAx2pSjWqU4Pu9KAnvehNH\/rSj\/4MYCCDGMwQhjKM4YxgJKMYzRjGMo7xTKAzXehKN6YxnRnMZBazmcNc5jGfBSxkEYtZwlKWsZwVrGQVq1nDWtaxnklMZgpT2cJWtrGdHexkF7vZw172sZ8DHOQQhznCUY5xnBOc5Ad+5CdOsZFNfM\/mwHfhgnwxMLssX+Eq17jOjcCaO\/Jd7nGfB\/zBQx7xmDOc5Wd+Cex\/Jb8OzN7Ib3nHez7wMbAmZHT3m9CEISxfEY7wROCpPX\/yjOeB\/TG9Hiv657N4cnwSkJBEJA6sSS6nICWpSM3XpCEt6YhEZKIQNbA\/u5wjMMsj5yUf+SlAwcCaonIxvuFbilOCkpSiNBnISCYyB\/ZXkasGZjXlWtSmDnWpF1jTSG7MdzShKc1oTgtaUpZylKcC7elARzrRmS50pRvd6UFPetGbPvSlH\/0ZwEAGMZghDGUYwxlBa9rQlnaMYzwTmMgkJjOFqUxjOjOYySxmM4e5zGM+C1jIIhazhKUsYzmjGM0YxrKWdaxnAxvZxPdsZgtb2cZ2drCTXexmD3vZx34OcJBDHOYIR1nJKlazhh\/5iVOc5gxn+Zlf+JVznOcCF\/mN37nEZa5wlWtc5wY3ucVt7nCcE5zkBx7yiMc84Sl\/8oznvIj++Xfotfw3\/\/Avb3jLO97zgY+f9sTw5zchCMk9s\/s84A\/CmYUnAhGJRGSiEJVoMT7vjSXHJg5xiUd8EpCQRCQmCUlJRnJCE4awfEUa0pKO9GQgI5nITJZAbw45J7nITR7yko\/8FKAghShMEYqSklSk5mtKUorSlKEs5ShPBSoGeqvK1ahODWpSi9rUoS71qE8DGtKIb\/iW4pSgOS1oSSta04a2tKN9oLez3CUw6yH3pBe96UNf+tGfAXxHE5rSjGEMZwQjGcVoxjCWcYxnAhOZxORA73R5BjOZxWzmMJd5zGcQgxnCUJayjOWsYCWrWM0a1rKO9WxgI5sCvVvlbWxnBzvZxW72sJeFLGIxSzjMEY5yjOP\/deYPnv\/IT5ziNGc4G+g9J5\/nAhf5jd+5xGWusJ8DHOQQt7jNHe5yL3DmQ\/kRj3nCU\/7kGc95wV+85BWv+Zt\/+Jc3vOUa17nBTf4T090mJKEIHfPz3nByeCIQkUhEJgpRiUZ0YhCTWMQmDnGJR3ze6\/rAx08\/l5yUZCQnRaDz0yONWVrSkZ4MZCQTmclCVrKRnRzkJBe5yUNeEpKIxCShMEUoSjG+CXSXlEtRmjKUpRzlqUBFKlGZKlSlGtWpQU1qkZ8CFKQQDWhIIxrzHU1oSjOa04KWtKI1bWhLO9rTgY50ojNd6Eo3utODOtSlHvXpR38GMJBBDGYIQxnGcEYwklGMZgxjGcd4JjCRSUxmClOZxnR60Zs+9GUu85jPAhayiMUsYSnLWM4KVrKK1axhLetYzwY2sonv2cwWtjKTWcxmDrvZw172sZ8DHOQQhwOf93H5RGD2k3yK05zhLD\/zC79yju3sYCe7uMRlrnCVa1znBje5Fei4J98PzB7Jj3nCU\/7kGc95wV9c4CK\/8Tv\/8oa3vOM9H\/j46exY7neszztCy2ECs\/ByBCISichEISrRiM4r573mb\/4hrlk84pOAhCQiMUlIGuhIKacKzNLK6UhPBjKSicxkISsxiUVs4pCbPOQlH\/kpQEEKUZgiFKUY3\/AtxSlBSUpRmjKUpRzlqUBFKpGdHOQkFzWoSS1qU4e61KM+DWhIIxrzHU1oSjOa04KWtKI1bWhLO9rTgSpUpRrV6UZ3etCTXvSmD33pR38GMJBBDGYIQxnGcEYwklGMZgxjGcd4OtGZLnRlKtOYzgxmMovZzGEu85jPAhayiMUsYSnLWM4KVrKK1axhLeuYyCQmM4XNbGEr29jODnayi93sYS\/72M8BDnKIwxzhKMc4zglO8gM\/8hMb2Mgmvo\/1+ffyvHwhMLskXw7Mrss3uMktbnOHu9zjPg\/4g4c84jRnOMvPgfNeyq8Cs3\/lN4HZB\/njp1ls95sQhCQUoQlDWL4iHOF5Yv1T\/uRZ4LwYXo8Z+\/NZXDleYJZITkwSkpKM5KQgJalIzdekIS0RiURkogTOyyZnD8xyy3kCswJyQQpRmCIUpRjf8C3FKUFJSpGeDGQkExWoSCUqU4WqVKM6NahJLWpTh7rUoz4NaEgjGvMdTWhKM5rTgjKUpRzlaUd7OtCRTnSmC13pRnd60JNe9KYPfelHfwYwkEEMZghDGcZwWtGaNrRlLOMYzwQmMonJTGEq05jODGYyi9nMYS7zmM8CFrKIxSxhKcsYyShGM4Y1rGUd69nARjbxPZvZwla2sZ0d7GQXu9nDXvaxnwMc5BCHOcIKVrKK1bE\/\/76ckk9zhrP8zC\/8yjnOc4GLgX2X5Stc5RrXucFNbnGbYxznBCcD+x\/LT3jKnzzjOS\/4i5e84nVg3xv5Le94zwc+floTx\/0mBHfle9znQWB\/BK9HJBKRiUJUohGdGMQkVpzP98WT45OAhCQiMUlISjJCEZowhA3sTyenJwMZyURmspCVbGQnR2BfHjkv+chPAQpSiMIUIQUpSUVqSlCSUpSmDGUpR3kqUJFKVKYKValGdWpQk1rUpg51qUd9GtCQYnzDtxSnGc1pQUta0Zo2tKUd7elARzrRmS50pRvd6UFPetGbPvSlH\/1pzHc0oSlDGcZwRjCSUYxmDGMZx3gmMJFJTGYKU5kW+L3Pkmczh7nMYyCDGMwQlrCUZSxnBStZxWrWsJZ1rGcDG9nE92xmS6B3h7yTXexmDwtYyCIWc4jDHOEoxzjOCU7yAz\/yE6c4zZlAz6+BfFH+jd+5xGX2sZ8DHOQmt7jNHe5yj\/s84A8e8ojHPOFpoOdFIL+W\/+Yf\/uUNV7nGdW58Wh\/X3SYEIQlFaMIQlq8IR3giEJFIcT\/viSZHJwYxiUVs4hCXeLzT9Z4PfCSJWVKSkZwUpCQVqfk60JFezhCYZZGzko3s5CAnuchNHhKQkEQkphCFKUJRivEN31KcEoGOMnJZylGeClSkEpWpQlWqUZ0a1CQf+SlAQerTgIY0ojHf0YSmNAv0tpJb04a2tKM9HehIJzrTha50ozu1qUNd6tGXfvRnAAMZxGCGMDTQO1IexWjGMJZxjGcCE5nEZKYwlWn0pBe96cMc5jKP+SxgIYtYzBKWsozlrGAlq1jNGtayjvVsYCOb+J7NbGEGM5nFbHaxmz3sZR\/7OcBBDnGYIxzlGMc5wUl+4Ed+4hSnOcNZfuYXfmUb29nBTn7nEpe5wlWucZ0b3OQWt7nDXe5xnwf8wUMe8ZgnPOVPnvGcF5znAhf5jX\/4lze85R3v+cDHT59tPPebEIQkFKEJQ1i+IhzhiUBEIhGZKEQlGi+d9YrX\/E0cs7jEIz4JSEgiEpOEpCQjOSlISSpS8zVpSEs60pOBjGQiM1mIQUxiEZtc5CYPeclHfgpQkEIUpghFKcY3fEtxSlCSUpSmDGUpR3kqUJFsZCcHOalODWpSi9rUoS71qE8DGtKIxnxHE5rSjOa0oCWtaE0b2tKO9lSmClWpFu\/zu9lD7hmY9ZX70Z8BDGRQYM0weTgjGMkoRjOGsYyjI53oTJfA\/unyjMBsjjyXecxnAQsDa5bKy1jOClayitWsYS0TmMgkJgf2b5W3BWa75N3sYS\/72B9Yc1g+wlGOcZwTnOQHfmQ9G9jIpsD+c\/L5wOx3+RKXucJVrgXW3JJvc4e73OM+D\/iDh5ziNGc4yzOe84K\/eMkrXvM3\/\/Avb3jLO97zgY+f+uO734QgJKEITRjC8hXheGztE57yJ1HMohKN6MSI\/\/nPEkeOSzzik4CEJCIxSUhKMpKTgpSkIjVfk4YIRCQSkclEZrKQlWyB3lxybvKQl3zkpwAFKURhilCUYnzDtxSnBCVJR3oykDHQUUmuHJhVl2tQk1rUpg51qUd9GtCQRjTmO5rQlGY0pzRlKEu5QEcHuWNg1lXuRnd60JNe9KYPfelHfwYwkEEMZghDGUZLWtGaNoGO8fIEJjKJyUxhKtOYzgxmBvbNlecxnwUsZBGLWcJSRjCSUYwO7F8nr2cDG9nE92xmC1vZxvbAvt3yHvayj\/0c4CCHOMxyVrCSVZzkB37kJ05xmjOc5Wd+4VfOcZ4Lgd5L8mWucJVrXOcGN7nFUY5xnBM84A8e8ojHPOEpf\/KM57zgL17yKtD7r\/yGt7zjPR\/4+GldAvebO57f5R73CWv2FeEITwQiEonIRCEq0YhODGISi9jEIS7xiE8CEpKIxCQhKSEJRWjCkJqvSUNa0pGeDGQkE5nJQlaykZ0c5CQXuclDXvKRnwIUpBCFSU4KUpKK4pSgJKUoTRnKUo7yVKAilahMFapSjerUoCa1qE0d6lKP+jSgKMX4hm9pSjOa04KWtKI1bWhLO9rTgY50ojNd6Eo3utODnvSiN33oSz8a0ZjvaMIQhjKM4YxgJKMYzRjGMo7xTGBigs+\/V1PlaUxnBjOZxWzmMJcBDGQQg1nMEpayjOWsYCWrWM0a1rKO9WwI9G6Wt7CVbWxnBzvZxW7ms4CFLOIghzjMEY5yjOOc4GSg45R8OjD7Rf6Vc5znAhf5jd+5xF72sZ8D3OAmt7jNHe5yj\/s8CHQ8lp8EZs\/lF\/zFS17xmr\/5h3+5wlWucZ2Pn85I6G4TgpAJ\/\/\/nhfE8bMLPOyLIEQOzqHI0ohODmMQiNnGIy1s973jPBxKbJSEpyUgeODN1IKeT05OBjGQiM1nISjayk4Oc5CI38UlAQhJRkEIUpghFAz3F5RKUpBSlKUNZylGeClSkEpWpQlWqUZ0a5CUf+SlAPerTgIaBzk+PpmbNaE4LWtKK1rShLe1oTwc60onOdKEr3ahFbepQlz70pR\/9GfBf3YM9H8JQhjGcEYxkFKMZw1jGMZ4JTGQSk5nCVHrQk170ZjZzmMs85rOAhSxiMUtYyjKWs4KVrGI1a1jLOtazgY1s4ns2M50ZzGQWO9nFbvawl33s5wAHOcRhjnCUYxznBCf5gR\/5iVOc5gxn+Zlf2Mo2trOD3\/idS1zmCle5xnVucJNb3OYOd7nHfR7wBw95xGOe8JQ\/ecZzznGeC1zkb\/7hX97wlne85wMfP33eidxvQhCSUIQmDGH5inCEJwIRiURkohCVv5zzkle8JrZZHOISj\/gkICGJSJzo8+93cjlFYPa1nIa0pCM9GchIJjITnRjEJBY5yUVu8pCXfOSnAAUDHUXlYoFZCbkkpShNGcpSjvJUICvZyE4OqlGdGtSkFrWpQ13qBToayY0Ds2Zyc1rQkla0pg1taUclKlOFqnShK93oTg960ove9Al0DJAHBmZD5WEMZwQjGcVoxjCWDnSkE52ZzBSmMo3pzGAms5jNHOYyj\/ksYCGLWMwSlrKM5axgJatYzRrGM4GJTGIT37OZLWxlG9vZwU52sZs97GUf+znAQQ5xmCMc5RjHOcFJfmAd69nARs7yM7\/wK+c4zwUu8hu\/c4nLXOEq17jODW5yi9vc4S73uM8D\/uAnTnGaM\/zJM57zgr94ySte8zf\/8C9veMs73vOBj58+68TuNyEISShCE4awfMUj6x7zhKdENotCVKIRnRjEJBaxiUNc4hGfBCQkEYlJQlKSkZwUpCQVqfma8EQgIpHISCYyk4WsiT\/\/ruaUc5GbPOQlH\/kpQEEKUZgiFKUY3\/AtxSlBWtKRngyUozwVqEilQG81uTo1qEktalOHutSjPg1oSCMa8x1NaEozSlGaMpSlDW1pR3s6BHq7BHIPuSe96E0f+tKP\/gxgIIMYzBCG0oKWtKI1oxnDWMYxPtAzOZCnyzOYySxmM4e5zGM+C1jIIhazhOGMYCSjWMVq1rCWdaxnAxvZFOjdKm9jOzvYyS52s4e97GM\/BzjIIZaxnBWs5AQn+YEf+YlTnOYMZwO95+Tzgdnv8iUuc4WrXOM6N7jJEY5yjOPc5wF\/8JBHPOYJT\/mTZzznBX\/xMtD7j\/wvb3jLO97zgY+f1ibxzxR\/v8Nd7hHGLCxfEY7wRCAikYhMFKISjejESPJ5bxw5LvGITwISkojEJCEEIQlFaFKRmq9JQ1rSkZ4MZCQTmclCVrIFenMFcj45PwUoSCGSkZwUpORbilOCkpSiNGUoSznKU4GKVKIyVahKNaoHemvLdahLPepThKIU4xua0JRmNKcFLWlFa9rQlna0pwMd6URnutA10NtT7kVv+tCXhjSiMd8xmCEMZRjDGcFIRjGaMYxlHOOZwEQmMZkpTP2v7hmez2QWs5lDfwYwkEEsYjFLWMoylrOClaxiNWtYyzrWs4GNbOJ7NrOFrWxjOzvYyS7mMZ8FLOQABznEYY5wlGMc5wQn+YEf+YlTgd\/rz\/Iv\/Mo5znOBi\/zG7+xhL\/vYz3VucJNb3OYOd7nHfR7wBw95xONA7zP5OS\/4i5e84jV\/8w+XucJVrvGBj5\/OSerPbkIQklCEJgxh+YpwhCdC0s97o8hRiUZ0YhCTWMQmDm90vOUd70lklpgkJCUZyUlBSlKRmq9JQ1rSBXozyZnJQlaykZ0c5CQX8YhPAhJSgIIUojBFAmd+KxenBCUpRWnKUJZylKcCFalEZapQlWpUJw95yUd+6lKP+jSgYaC3idyUZjSnBS1pRWva0JZ2tKcDHelEZ7rQlZrUojZ16E0f+tKP\/oHewfIQhjKM4YxgJKMYzRjGMo7xTGAik5jMFLrTg570YhazmcNc5gV6F8mLWcJSlrGcFaxkFatZw1rWsZ4NbGQT3zON6cxgJjvYyS52syfQe0A+yCEOc4SjHOM4JzjJD\/zIT5ziNGc4y89sYSvb2M5FfuN3LnGZK1zlGte5wU1ucZs73OUe93nAHzzkEY95wlP+5Bm\/co7zXAj8bP\/Kb3jLO97zgY+f1iVzvwlBSEIRmjCE5SvCEZ4IRCQSkYnCC2f8xUteBXrjej0e8UlAQhKRmCQkJRnJSUFKUpGar0lDWtKRngxkJBPRiE4MYib7vDe3nIe85CM\/BShIIQpThKIU4xu+pTglKEkpSlOGspSjPFnISjayB3pryDWpRW3qUJd61KcBDWlEY76jCU1pRnNa0JJWtKYNbalIJSpThc50oSvd6B54L73lPvSlH\/0ZwEAGMZghDGUYwxnBSEYxmjG0pwMd6cQkJjOFqUwL9M6SZzOHucxjfmDNYnkJS1nGclawklWsZhzjmcBENrKJ79nMlsCZO+Sd7GI3e9gbWHNQPsRhjnCUYxznBCdZyzrWs4EznOVnfuHXwJkX5d\/4nUtc5kpgzQ35Jre4zR3uco\/7POBHfuIUp3nKnzzjOS\/4i5e84jV\/8w\/\/8oa3gd6Pn3Jy95sQhCQUoQlDWB5a84jHPCGSWWSiEJVoRCcGMYlFbOIQl3jET\/55b+JATi6nICWpSE04whOBiGQgI5nITBayko3s5CAnuchNHvKSj\/wUoGCgt6hcjG\/4luKkIS3pSE9ZylGeClSkEpWpQlWqUZ0a1KQWtalDXeoFehvJjfmOJjSlJKUoTRla04a2tKM9HehIJzrTha50ozs96EkvetMn0DtAHsggBjOE5rSgJa0YxWjGMJZxjGcCE5nEZKYwlWlMD\/TMlucwl3nMZwELWcRihjGcEYxkJatYzRrWso71bGBjoGOLvDUw2ynvYjd72Ms+9nOAgyxlGctZwXFOcJIf+JGfOMVpzgQ6fpXPBWa\/yb9zictc4SrXuM4NDnOEoxzjHvd5wB885BGPecLTQMcL+a\/A7G\/5H\/7lDW95x3s+8JFb3OYOdwmdwt0mLF8RjvBEICKRUnzeEU2OTgxiEovYxCEu8YhPAhKSiMT8hxCEJBQpSUVqviYNaUlHejIEerPIWclGdnKQk1zkJg95yUd+ClCQpCQjOSn4hm8pTglKUorSlKEs5ShPBSpSicpUoSrVqE4NalKL2tShLvUoTBGKUozvaEJTmtGcFrSkFa1pQ1va0Z4OdKQTnelCV7rRnR70pBe96UMDGtKIxgxiMEMYyjCGM4KRjGI0YxjLOMYzgYlMYjJTmMo0pjODmcxiNv3ozwAGsvC\/Pr8lni9lGctZwUpWsZo1rGUd69nARjYFvgNb5W1sZwc7mcs85rMgsP6QfJgjHOUYxznBSX7gR37iFKc5w9nAOefk81zgIr+xmz3sZV9g\/U35Fre5w13uBdY8lB\/xmCc85c\/Amr\/kl7ziNX9zictc4Wpg\/f+ldM8IQUhCETrl50vCyeGJQEQiETmwJrocg5jEIjb\/6nrDW94FepN4PSnJSE4KUgbOTCOnJR3pyUBGMpGZLGQlG9nJQU7iEo\/4JCA\/BShIIQpThKIU45tAb0m5FKUpQ1nKUZ4KVKQSlalCVaqRmzzkJR91qEs96tOAhjSiMd\/RhKY0ozktaEkrWtOGtrSjPR3oSCc604Ua1KQWtelFb\/rQl370ZwADGcRghjCUYQxnBCMZxWjGMJZxjGcCE5nEZLrRnR70ZCazmM0c5jKP+SxgIYtYzBKWsozlrGAlq1jNGtayjvVsYCObmMo0pjOD7exgJ7vYzR72so\/9HOAghzjMEY5yjOOc4CQ\/8CM\/cYrTnOEsm9nCVrZxgYv8xu9c4jJXuMo1rnODm9ziNne4yz3u84A\/eMgjHvOEp\/zJL\/zKOc7zitf8zT8pP\/\/uvpPf84GPn15L5X4TgpCEIjRhCMtXhCM8EYhIJCLz3P4X\/MVLYprFIjZxUn3em0BOSCISk4SkJCM5KUhJKlLzNWlISzrSk4GMRCUa0YlBdnKQk1yB3nxyfgpQkEIUpkhg3bdycUpQklKUpgxlKUdmspCVbFShKtWoHjivtlyHutSjPg1oGFjXRG5KM5rTgpa0ojVtqEBFKlGZTnSmC13pRnd60JNe9KYPfelH\/0DvYHkIQxnGcEYwklGMph3t6UBHJjKJyUxhKtOYzgxmMovZzGEu8wK9i+TFLGEpy1jOClayirGMYzwT2MBGNvE9m9nCVraxnR3sZBe72cNe9rGfAxzkEIc58v+rmK6igyAAKIAq4KQbRspGjRjd3d1dAhvd3YISgw1GNyrhUelUUEKQQ3d3CiOku8vrx\/157++d89jNHvayjxWsZBWrOcJRjnGcE5zkFKc5w1nOcZ4LXOQSl7nCVf7hGteJ4QY3ucVtDnCQQxzmAQ95xGOe8JRnPOcFL3nFa97wlne85wMf+fT\/9tn9m1jEJg5fEMAd\/V3ucZ+EskQkJglJSUZyUpCSVKQmkDSkJR3pyUBGviITQQSTmSxkJRtxiUd8EpCbUPKQl3zkpwAFKURhilCUYhSnBCUpRWnKUJZylKcCFalEZULIQU5yUZNa1KYOdalHfRrQkEY0pglNaUZzWtCSVnxNa9rQljDCaUd7qlKN6tSgK93oTg960ove9KEv\/ejPAAYyiMEMYSjD+IbhjOBbvmMkoxhNRzrRmS5EMZ4JRDORSUxmClOZxnRmMJNZzGYOc5nH9\/zAj8xnAQtZxE9EMJZxRLKEpSxjOStYySpWs4a1rOM3fmc9G\/iDP9nIJjazhb\/Yyjb+Zjs\/8wu\/spg97GUf+znAQQ5xmCMc5RjHOcFJTnGaM5zlHOe5wEUucZkrXGUHO9nFbm5yi9v8yx3uco\/7POAhj3jME57yjOe84CWveM0b3vKO93zgI9e4Tgw3iBPi2wTwJXGJR3wSkJBEJCYJSUlGclKQklSkJpA0pCUd6clARj7jc2IRmyxkJRvZCSEHOclFbkLJQ17ykZ8CFKQQhSlCUYpRnBKUpBSlyUQQwWSmIpWoTBWqUo3q1KAmtahNHepSj\/o0oCGNaEwTmtKM5rSgJa0oSznKU4Fw2tGeDnSkE53pQle60Z0e9KQXvelDX\/rRnwEMZBCDGcJQhtGaNrQljJGMYjRjiGAs44gkivFMIJqJTGIyU5jKNKYzg5nMYjZzmMs8\/gMQtU6u", "encoding":"base64", "height":326, "name":"Background", "opacity":1, "type":"tilelayer", "visible":true, "width":30, "x":0, "y":0 }, { "compression":"zlib", "data":"eJzt0UlOVQEQQNH3P73sfy9IK4pI51ilk05QcayIDVwWQDRhek5yZ5WqQQ0DADxuYTQMz2uxlmq5Vmq11upFrdfLelUb9bo2601t1Xbt1G7t1dvRv+++a+Z9faj9OqjDOqrj+lgndVpndV4X9aku66o+15f6Wtf17T\/ufm\/mR93Uz7qtX\/W7\/tTfunvYMx6GUY1roiZrqqZrpmZrrp7V\/PjJbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjuAY9jLnI=", "encoding":"base64", "height":326, "name":"Finish", "opacity":1, "type":"tilelayer", "visible":true, "width":30, "x":0, "y":0 }, { "compression":"zlib", "data":"eJztlwl0Duceh8ceQTZZScgqsVWVCKWWJPau9msLoaU7LVqCInRBF7Ul0dbW3hbdxL7cFu1tCUUWEdpa20u4BBFraZ8cc4+5vcnk+77M\/Ou48zvnOe+bed\/398x8mZycT1H+O2FQB8IhQpFLLLSHDtBR0DsEhsLj8ISgdwokwlSYZse5d2AWvGvGTenkC\/gSVgp7d8Me2CvsPQNnIc+gvrJlFKUclIcKZQwqtSFBuIIhBEIFvW1xtYNoiBH0xuEaBIMhXtBrxYoVc9K\/rKIMgIEQV1bOm4BrPEyAiYLeFFwL4D1430TvGrrXwjrVsYFxI2yCzSZ6s+jeB9mCn2lh8vFdhAJhr0c5RakOnuVkvbbkfu6pJbQSvre\/4esL\/YS9L+MbC+OEvfPxJUHyHfgO2JOd3P8u+AF2Cz7LKVyn4d9wRtBbubyiOEMVqFpezhuBqy7Ug\/qC3o64OkFn6CLovZMyneeeATOFn38ZvuWwQti7Hd8OSCvBm8F6JmQ5cH\/HOHMcfoFf1fMnGE9Cbgl951m\/APkOeMtU4Ls3lIPyFW5dq8hYCZwq6J91Y90dPErYVxh\/9gRALXVvIGMQBEOIDee1acT+e6GxDedasqcVPKDubcPYFtpBtJ3eh9n\/CDxqw7m+7OkH\/TV745gPstNpb8bSPw4STPYUlWScKX+B10rJKVeRv2+oABUrmuMIoLcW1Nb0BzMPgVAIM8nbit4HoLWmvx3zaIiBWGgPHaAjdDLoPvrR0x8GaPoGMR8M8TAEhsLj8AQMM8g7jp4EGK\/Tl8jaVJgGr5r0uReVJbiWwofwkaB3K65t8A18K+i1Uvo0raQokdAMoirJebvj6gE9oZdJ3mfpfQ6ehxGq4wXGF2EUjDbI+zo9b8B0tW8m45vwFrytXpvF+C7MhjkGeT+m5xNYpvatYPwUPoPP7XRsZP8m2GzDue\/Y8z1sV\/emMe6EXfCDnd4D7D8IP9pw7lf2\/AtOGPD5XaHjKlwTfOcL4+OkKL7g5yTrvVvyFJ\/b0\/AMPCv4Gb6BazrMgJmC3k9wLYPlsELQ+z2u7bAD0gzy\/kzPITgs\/O7\/hu8G3BT21qzMd28IqCzrvR9fS2hlp7cT+ztDF+H7HYZvODwp7H0V32vwurD3I3x\/h4+FvWbkIM\/wI\/wk\/CxX8V2D68JeX2f+d0MN51s\/+zMGQC1nc71R9DeHFqqnJWMreMBkby\/6e0Mf1dOXsR\/0N9n754zFNw4SSvAmsj7VwHtLoisZUnQ6F7O2BJYKfyZb8G2FbcLew\/iOwFFh7018vxc6q9i2vwr7qkI1G\/cblXr46kMDYW9nfF2gq7B3OL4n4SkDvAl0jIcJws+Qgm8BvCfs3YBvI2wS9ubgOwAHDfKeoecs5Ak\/R9Wq\/H2DS1VZb318DaChsLcLvq7woLC3uDzPfYyAkcL38xa+t+EdYe9n+D6HL4S9u\/D9ALvvkN+7FccSXU1RYiC2mnmO\/nQPgIEQp3oGM8bDEBO9CXSPhwkwUfVMYpwMUwz0zqNrPiSpnSmMC+A9eF+9tpBxESw20LuGrrWwTu3cwLgRNsFmEz\/XLLr3QbaJjqKSj+8iFAh7jUqoi6KEQR0XWW8MvlhoL+yNxzcEhgp7J+ObAonC3tJmJfebCqtgteC978WVDhmQKejNw3UOzsMFHe9V1q7BdYPuzcVVUVzBDdxdi9\/ny5of1NDZY0ai8DWHFsLeXvh6Qx9h72h8Y+AlYa+VuydV3PjuDdXAxU3OWw9XfWgADQW9nXF1ga7woKB3OK4n4Sl42kRvIt1TYZrgsxVmCb6l8KGwdyu+bfCNjjeNtZ2wy8B7O0LXUTim05nL2ik4rdlzlnkenDPxc3JyV5TK4Ox++1o15i7g6l78udImnO4IqKtxNGDeEO4x0VtUuuJ7EB4S9lq585LJO5AF+zTvQg7zA3BQ5\/04ytoxOO7gO3SBc\/lwUXP+MvMrcFWv00NRykBZD8e87pzzgOqa897MfcBXp7M2a4EQ5KD3Xs41hvs05yOZN4Monc7WrLWBtg56H+Hco\/CY5nwP5j2hl07nANYGQpyDXitW8nl3LkKB8DvkUZ2\/b\/CsLuttjO8+aCLsfRTfY9BN2Ps8vhEwUuMdxXw0jBG+l9n45sBcYW8qvlWw2kDvdrp2lNCXznoGZBroPUHXScgV\/gwreipKJXDylHOG4gqDOhAu6C1MLL720EHYa+Wvybf8nv8J32l+3zuYp8FOE9+B43T\/Ar9qHCeZ58IpE71lvRSlHJT3un2tEnMnqOxV\/LnSJojuYAjROOowD4cIE71WrNibDN7HTMhS38tsxv2QAwfUaz8y\/gQ\/wyGD3t\/z9FyAfLWvgPESXIYr6rVrjNfhN7hhkNfNm+\/e4OF962dPRi\/wBh\/1mh9jDagJ\/t7GeBvRcy80VvuaMDaFSGimXmvO2ALuh5YGea3c3UnjPdkJu+x8X3LYfwAOOvie5XLuFJy28\/xl9l+Bqw56nXz43w3OPvad82a\/D\/jaee4\/CedcBNS183wk+5tBlINeK45lHp\/3fEiCZMHPfg2utbAO1pvo3Ut3OmSojizGfZAN+0305tF9Ds6rjnzGi1AAl0z0uvgqiiu4+d762YOxOniCl68xjgh66kI9TV9D5vdAI4McRaUj3Z2gs4mOovIEvmEwXNg7Dd+r8Jqw14oVK\/oZ5acoo2GM3+1rY5mPgwS\/4s9NYS0Rpurs0ctszs2BuZrzScyTIUWnczFrS2Cpg95Uzq2C1Zrz65ivhw06nVtY2wrbHPSmcy4DMjXns5nvhxydzsOsHYGjDnrvpHjW4H83eNeQ9TbB1xQiTfQ+RPfD8IjG0Y15d+hhovcZup+F5zSOkcxfgBdN9M6geya8aacjmf0psMDBe1vOuRXwqZ3n17N\/A2wUfvf248uBA8LeS\/guwxVhr5W7O7NqKsq7MLumrPdLfCsh1URvGt07YZfGsYf5Xkg30ZtL9yk4rXGcZZ4H5wz0lvdXlAr+t392Yl4ZnDXXqjF3AVf\/\/z3vSILpCYFQCFM7wxkjoK5BjqLSju5oiIFYEz1\/ziBcgyEehgh6CzMJ32Rhp5X\/v9QOUJRACAq4fS2UeRjUCSj+XGnTmu420FbjiGEeC+1N9A6geyDEaRzxzIfAUBO94+meABM1jsnMp0CiiV4rVozIfbX47g1Na8l6H8PXDboLe0fgGwkvqN5RjKNhjMn38Tb978As1TObcQ7MFX7+VHyrYLWwNx1fBmRqvNnM90OO8L0U4LsEl4W9nrUVxQu8a8t6m+BrCpGqN4qxObQQuI\/uGkcv5r2hj\/Dzj8Y3Bl4S9hZmLs55f4FXIrt5rj2wV\/j5zuA7C3nC3qqBfPcGl0BZb318DaChgd52dEVDjIGdtmQQvsEQL+x9Bd8kmCzs\/QDfQlgk7P0Hvq\/ga2GvRC4F8r8brgTKer2C+N8NPkGy3qb4IqGZsLc7vh7QU9hbVF7iHl6GscL3Mg\/ffEjS8S5kbREsNvDe1tC1FtbpdH7F2tewxUBvFl37IFun82fWDsFh4d\/Fb\/huwE1hb81gRfGHgOBbP9dmDISgYNn7aI2vDbQV9g7ANxDihL3j8U2AiSZ759OfBMkmelbSnQqrNI61zNfBehO9e+lOhwyNYx\/zbNhvojeP7nNwXuO4yLwALpnodQlRFFdwCzHPUVQa4rsHGgl7rRiTxfzelpTyd5fK+VWw2saer9m3BbaW0pvO+QzItLHnEPsOwxGd\/SdYOwm5OnvOsXYeLtjovcG+m\/C7zv6KoYpSCZxCi9\/jypobuOvs0caffQFQS2d\/GGt1INzGTqMSi689dBD2WrFS2lzlnb0G14XfXd8wRfGDGmGy3ih8zaFFCd52rEdDjEH314ue3tCnhL5BrA+GeOHP5RV8k2CysPcDfAthkbDXihUrVqxYsWJ7\/gDSn25K", "encoding":"base64", "height":326, "name":"Cars", "opacity":1, "type":"tilelayer", "visible":true, "width":30, "x":0, "y":0 }, { "compression":"zlib", "data":"eJzt3UXU0FW3wOH3EwETRLobVMIALEoEDMAiVFJJKQMwSJFSygCDUklJlTAIlVJSJQzAoiQNwCBU4j5Ozx2fcwf322s9C5js3+Rd8OdM9sYcGRmb2MwXxJr2F2dkdOABOnJI6zBH+C1id7DWEJ7mGS4kG9m56OJ43al2T+MNplOeClTk8ojdlXZ\/zCesoj4NuI3bI3Z32b2bH9lDZ7rQlQcjdjNyZmT8h7PIxDCt4YxgZMRuUa1iFKcEM7VmMZs5Ebs1tGpyA7VYo7WWdayP2G2p1Yr7uJ99Wvs5wMGI3b5a\/XiS\/mQmC1k5J2e87gS7X+U1XqcUpSlD2YjdJXZ\/wId8RG3qUJebIna\/sftbvuN72tCWdrSP2D1h91\/8zT8MYCCDGByxmzdXRkY+8lOASVqTmcLUiN2rta7hWq5jmdZyVrAyYreJ1t3cw71s19rBTnZF7D6q9RiP8wSntE5z5t9mrnjdF+1+iZd5hUIUpghFI3YX2P0O7\/IeValGdWpE7G62+wu+5Cua0ZwWtIzYPWL3b\/zOH\/SiN33oG7GbPbfvN3JwMWO1xjGeCRG7FbUu5wquZKHWIhazJGL3Nq3buYM72aK1lW18E7HbVetBHuJhjmod4zgnInZHaI3kWZ4jF7nJQ97c8bqz7Z7Dm7xFJSpThasjdtfZvZ5P+YyGNKIxTSJ2D9h9kJ\/4mW50pwePRuxmzeP7jXM5jxe0RjGaFyN2y2iV5RIuZa7WPOazIGK3rtZN3MwtbNDayCY2R+y202pPBx7gV61DHOZIxO4grcEM4Wku4EKykT1PvO4Uu6cyjTcoR3kqUDFid4XdK\/mYT6hHfRpwW8TuTrt3sZsf6URnutA1YvfMv7vz+r83ZzHUn4cxnBERu0W0ilKM4szQmsksZkfsVteqQU1uYLXWGtayLmK3hVZLWnEfe7X2sZ8DEbt9tPrSjyc5m8xkIWveeN3xdk\/gVV6jJKUoTZmI3cV2L+EDPuRGalOHuhG72+z+hm\/5jta0oS3tInaP232Cv\/ibpxjAQAZF7ObJ568N8pGfiVqTmMyUiN0qWldzDdeyVGsZy1kRsdtYqwl3cw8\/aG1nBzsjdntoPcpjPM5JrVOc5kzE7mitF3mJlylIIQpTJF+87ny7F\/AO73I9ValG9YjdTXZv5gu+pCnNaE6LiN3Ddh\/hN36nJ73oTZ+I3Wz5fb9xETkYozWWcYyP2K2gVZHLuYL3tRayiMURuw20buN27uBrrS1sZVvEbhetrjzIQ\/ypdZRjHI\/YHa41gpE8S05ykZs8+eN1Z9k9mzm8yVVUojJVInbX2r2O9XzKXTSkEY0jdvfbfYCD\/MQjdKM7PSJ2sxTw\/cY5nMvzWi8witERu6W1ylCWS3hbay7zmB+xW0erLjdxM59rbWAjmyJ222q1oz0d+EXrVw5xOGJ3oNYgBjOE87mAC8lWIF53st1TmMo0LqMc5akQsbvc7hWs5GNupR71aRCxu8PunexiNx3pRGe6ROyetvvMv\/sL+r83z\/j9UIYxPGK3sFYRilKM6VozmMmsiN1qWtWpQU1Waa1mDWsjdptrtaAlrdijtZd97I\/Y7a3Vh770IxNnk5ksBeN1x9k9ngm8SglKUorSEbuL7F7MEj6gFjdSmzoRu1vt3sY3fMv9tKYNbSN2j9l9nBP8RX+eYgADI3ZzF\/L9Rl7y8brWRCYxOWK3slYVruYaPtJayjKWR+w20mpME+7me60f2M6OiN3uWj14lMf4R+skpzgdsTtKazQv8hIFKEghCheK151n93wW8A7XcT1VqRaxu9HuTWzmC+6lKc1oHrF7yO7DHOE3nqAnvegdsXthYd9vZOciXtEaw1jGReyW16pARS7nPa33WciiiN36Wg24jdv5SutrtrA1YrezVhe68iB\/aP3JUY5F7A7TGs4IRnIxOclF7sLxujPtnsVs5nAlV1GJyhG7a+xeyzrWcyd30ZBGEbv77N7PAQ7yMI\/Qje4Ru5mL+H4jK+fwnNbzvMCoiN1SWqUpQ1ne0nqbucyL2K2tVYe63MRnWp+zgY0Ru2202tKO9vys9Qu\/cihid4DWQAYxmPM4nwu4sEi87iS7JzOFqVzKZZSjfMTuMruXs4KV3MKt1KN+xO52u3ewk108QEc60Tli95Tdpznzb6NoRsbTfn2GoQyL2C2kVZgiFOUNrenMYGbEblWtalSnBp9orWI1ayJ2m2k1pwUt+VFrD3vZF7HbS6s3fejLWWTibDIXjdcda\/c4xjOB4pSgJKUidhfavYjFLOEGanEjtSN2t9i9lW18w33cT2vaROwetfsYxznBk\/TnKQZE7OYq5vuNPOTlNa3XmcikiN1KWpWpwtV8qPURS1kWsdtQqxGNacJ3Wt\/zA9sjdrtpdacHj\/K31j+c5FTE7gtaoxjNi+SnAAUpVCxed67d85jPAq7lOq6nasTuBrs3sonN3MO9NKVZxO6vdh\/iMEd4nCfoSa+I3QuK+34jG9l5WesVxjA2YrecVnkqUJF3td7jfRZG7NbTqk8DbuNLra\/4mi0Ru520OtOFrvyu9Qd\/cjRid6jWMIYzghxcTE5yFY\/XnWH3TGYxmyu4kquoFLG72u41rGUdd3And9EwYnev3fvYzwEe4mEeoVvE7tklfL+Rhaw8q\/Ucz\/NCxG5JrVKUpgxvar3F28yN2L1RqzZ1qMunWp\/xORsidltrtaEt7fhJ62d+4deI3ae0BjCQQZzLeZzPBSXidSfaPYnJTOESLuUyykXsLrV7GctZwc3cwq3Ui9j9we7t7GAnHXiAjnSK2D1p9ylOc4YhPM0zDI3YLVjS9xuFKcI0rTeYzoyI3eu1qlKN6nys9QmrWB2x21SrGc1pwW6tH9nD3ojdnlq96E0f\/sNZZOLskvG6Y+weyzjGU4zilKBkxO77di9kEYupyQ3U4saI3a\/t3sJWttGK+7if1hG7f9p9lGMcpx9P0p+nInZzlvL9Rm7y8KrWa7zOxIjdq7QqUZkqfKD1IR+xNGL3Lq2GNKIx32p9x\/f8ELH7iFY3utODv7T+5h9ORuw+r\/UCoxhNPvJTgIKl4nXftnsu85jPNVzLdVwfsfu53RvYyCbu5h7upWnE7i92\/8ohDvMYj\/MEPSN2zy\/t+40LycZLWi\/zCmMidi\/TKkd5KvCO1ru8x\/sRu7dq1aM+DfhC60u+4uuI3Y5anehMF37T+p0\/+DNi9xmtoQxjOBeRg4vJWTped7rdM5jJLC7nCq7kqojdVXavZg1ruZ07uJO7Inb32L2XfeznQR7iYR6J2M1UxvcbmcnCSK1neY7nI3ZLaJWkFKWZo\/Umb\/F2xG4trRupTR3Wa33KZ3wesXu\/Vmva0JaDWj\/xM79E7PbXeooBDOQczuU8zi8Tr\/u63ROZxGTKcgmXclnE7kd2L2UZy7mJm7mFWyN2v7f7B7azg\/Z04AE6Ruz+Y\/dJTnGawQzhaZ6J2C1Q1vcbhSjMVK1pvMH0iN3rtK6nKtVYqfUxn7AqYvderaY0ozm7tHbzI3sidp\/Q6kkvepPBfziLTGXjdV+xewxjGUdRilGcEhG74dTQqskN1ErYbanVivu4P2G3r1Y\/nqR\/wm6qn6tw\/vtzlWb+r36uUr17h5Pq3TucVO\/e4aR69w4n1bt3OKnevcNJ9e4dTqp373BSvXuHk+rdO5xU797hpHr3DifVu3c4qd69w0n17h1OqnfvcFK9e4eT6t07nFTv3uGkevcOJ9W7dzip3r3DSfXuHU6qd+9wUr17h5Pq3TucVO\/e4aR69w4n1bt3OKnevcNJ9e4dTqp373BSvXuHk+rdO5xU797hpHr3DifVu3c4qd69w0n17v2\/5r\/vk0nm\/9v75PBsGRkjGMmz2dJ1Z2nNZg5vJuyu1VrHej5N2N2vdYCD\/JSwmyV7RkZWzuHc7Om6pbXKUJZLEnbraNXlJm5O2G2r1Y72dEjYHag1iMEMSdidrDWFqUxL2F2utYKVfJywu0NrJ7vYnbB7WuvMv72L\/Pt\/UbpuYa0iFKVYwm41rerUoGbCbnOtFrSkVcJub60+9KVfwu44rfFM4NWE3UVai1nCBwm7W7W28Q3fJuwe0zrOCf5K2M2dIyMjD3nJF\/FuaTiVtapwNdck7DbSakwT7k7Y7a7Vg0d5LGF3lNZoXuSlhN15WvNZwDsJuxsT3f8NJ9X933BS3f8NJ9X933BS3f8NJ9n932BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933BS3f8NJ9X933D+B6JRuJs=", "encoding":"base64", "height":326, "name":"Grass", "opacity":1, "type":"tilelayer", "visible":true, "width":30, "x":0, "y":0 }], "nextobjectid":1, "orientation":"orthogonal", "renderorder":"right-down", "tileheight":50, "tilesets":[ { "columns":31, "firstgid":1, "image":"..\/..\/..\/..\/Users\/Merel\/Desktop\/road.png", "imageheight":17008, "imagewidth":1000, "margin":2, "name":"road", "spacing":2, "tilecount":10137, "tileheight":50, "tilewidth":30 }], "tilewidth":30, "version":1, "width":30 }