Search the Community

Showing results for tags 'phaser3'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


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

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 121 results

  1. NoobTW

    Scaling canvas makes text ugly

    Hi, I'm totally new in HTML 5 Games. If I resize my canvas (by calling resize function in preload), those text will become blurry, ugly. Any idea to handle this? Here's the example: .
  2. I've just started Phaser 3 development and I noticed there are no buttons, which I found a little odd. Buttons are a very important part of the interactivity of a game. In Phaser 2 I used them all the time for creating menus, select a level, restart level, quit game etc. But ok I understand that you can use a sprite and add .setInteractive() so it will act like a button. The button should change color when on mouse-over and another color when it is pressed down. I'm using a sprite atlas with the different frames for the button faces, and I've tried using the pointerover and pointerout and pointerdown events to change the of the sprite but this doesn't seem to work. preload: function () { this.load.multiatlas('sprites', 'img/sprite_demo.json', 'img'); }, create: function () { // back Button this.btnback = this.add.sprite(400, 480, 'sprites', 'btn_back').setInteractive(); this.btnback.on('pointerover', function (ptr, x, y) { = 'btn_back_hl'} ); this.btnback.on('pointerout', function (ptr) { = 'btn_back'} ); this.btnback.on('pointerdown', function(event){ = 'btn_back_down'; this.scene.start('mainmenu'); }); }, Changing doesn't seem to do anything, it stays the same frame as when the sprite was created, no interactivity. So how can I make buttons work in Phaser 3?
  3. Pau

    Load tilemap

    Hello, I am trying to load a tilemap json file made with the tiled program. I am looking for phaser 3 equivalent to this phaser 2 code: function preload(){ this.load.image('gameTiles', 'tiles_spritesheet.png'); this.load.tilemap('level1', 'map.json', null, Phaser.Tilemap.TILED_JSON); } function create(){ = this.add.tilemap('level1');'tiles_spritesheet','gameTiles'); this.backgroundLayer ='backgroundLayer'); } I have the attached the phaser 2 code, they are a few lines. Thank you!
  4. peevopuff

    Phaser 3 Tilemap setting Origin

    Hey Community! I'm trying out the new Phaser 3 Framework using Tilemaps. I create my tilemaps through Tiled and export them as .json. Since my map doesn't occupy the whole screen, I wanted to center it to the worlds center. I can render every layer to the screen and center them to the world but I can't center their origin properties since they come by default at 0, 0. The strange part is that their values change in the layer object to the ones I want but the layer image stays the same. I've tried using Static or Dynamic layers but there's no difference. Am I missing something? Is anyone else having trouble using: "layer.setOrigin(0.5, 0.5);"? Here's a snapshot of my code:
  5. Phoser3 + Mouse Wheel I may be dumb and this already exists but I took some time this evening to sketch out what it'd take to get mousewheel support in v3. A demo is up that works in updated FF and Chrome. I'll circle back and fix the skeleton to work in IE so I can test there at some point since I forgot it doesn't support modules. 🙄 I'm happy to work with folks / take merges but won't be doing any more until I have a chance to think about how it fits in with the existing input model and see if @photonstorm would accept it upstream or if they've already got stuff going to implement it and what his concerns would be. Anyway, felt worth since most of the approach can be pulled out of phaser and applied in isolation. cheers! Edit: OH! if this doesn't work in your browser add a comment and let me know, mouse wheel events are ... pretty reasonable but it felt like there were maybe still some rough edges in how the events were surfaced.
  6. Ad4m

    Picture Packer

    Hi all, I would like to share here a simple python app I'm coding: PicPacker. It's -or will be someday- somehow similar to TexturePacker. It takes same sized images, processes them and yield, as you all has supposed, a single image containing all the others. Also if you specify it you can generate a json to index all images. If you like be my guess and try it, at least for testing purposes ☺️
  7. andrei.nicolae

    Custom Font

    Hi, I want to use a font that I have installed locally on my computer in the game. Can someone help? Thank you.
  8. andrei.nicolae

    Group set origin

    Hi guys, How can you change the anchor of a sprite inside a group? For a sprite outside the group I use this.add.sprite(100,100, 'sprite').setOrigin(0,0); I tried the next code but It didn't work leprosy =[{ key: '001_leprosy', setXY: { x: 444, y: 115 }, setOrigin : {x:0, y:0} } ]); Any ideas? Thanks.
  9. Hello everybody! Who knows how to implement endless scrolling of a composite background from different parts that are loaded from the data array? The important point: each part contains an image and text. The array of such parts can be large, so the parts will be loaded by the stack (about 6-10 items). I will be glad to any ideas and suggestions, since I spent a lot of time searching nothing. For clarity, I'm attaching an image. Thanks for any suggestions. Phaser v.3.10.1
  10. andrei.nicolae

    Sprite with alpha

    Hi guys, I have a tiny sprite placed in a png sized like the game, with alpha, so I only see my tiny sprite surrounded by blank space. It's done this way because I want to place it in (0, 0) and be displayed in it's original position. So, I'm trying to place this sprites and they all go in the same place, center of the screen, like they are trimmed sprites. Any solution for this? Thank you.
  11. Hello Total newcomer to Phaser 3 and Javascript here so please bear with me! I've been fiddling around with the very first example (the bouncing logo) just to get a feel for how things work (code below, set to use local copy of phaser.js as a test and with a pointless 2D array!). It seems pretty straightforward so far but I have two questions... Is it usual to declare variables outside of functions (as in my code), rather than say declaring in preload() or create() and passing them around? And secondly, how do I go about splitting a program into logical chunks/modules/files and retain access to variables or constants that will be required throughout the program? Thank you! Paul <!DOCTYPE html> <html> <head> <!-- <script src="//"></script> --> <script src="phaser.js"></script> </head> <body> <script> var config = { type: Phaser.AUTO, width: 800, height: 600, physics: { default: 'arcade', arcade: { gravity: { y: 2000 } } }, scene: { preload: preload, create: create, update: updatathon } }; var game = new Phaser.Game(config); var cursors; var logo; var emitter; var arrayText; var test = [ [1, 1, 1, 1, 1], [1, 0, 0, 0, 1] ]; function preload () { this.load.setBaseURL(''); this.load.image('sky', 'assets/skies/space3.png'); this.load.image('logo', 'assets/sprites/phaser3-logo.png'); this.load.image('red', 'assets/particles/red.png'); } function create () { this.add.image(400, 300, 'sky'); var particles = this.add.particles('red'); emitter = particles.createEmitter({ speed: 600, scale: { start: 0.75, end: 0 }, blendMode: 'ADD', angle : 90 }); // player controlled logo-flavoured spaceship logo = this.physics.add.image(400, 400, 'logo'); logo.setCollideWorldBounds(true); emitter.startFollow(logo); //set up cursor keys cursors = this.input.keyboard.createCursorKeys(); //text to display a pointless array index arrayText = this.add.text(16, 16, '', { fontSize: '32px', fill: '#FFFFFF' }); } function updatathon() { logo.setVelocity(0); if (cursors.up.isDown) { logo.setVelocityY(-100); logo.setScale(0.95); logo.setVelocityX(Phaser.Math.FloatBetween(-100, 100)); emitter.setAngle(Phaser.Math.FloatBetween(60, 120)); emitter.on = true; } else { emitter.on = false; logo.setScale(1); } if (cursors.left.isDown) { logo.setVelocityX(-100); } if (cursors.right.isDown) { logo.setVelocityX(100); } arrayText.setText('Array [0][1]: ' + test[0][1]); } </script> </body> </html>
  12. Hi everyone, I'm using the typescript Phaser 3 version. How do we completely restart a scene? I would like to build a new instance of a previous scene from scratch for example. Thanks,
  13. locojoetive

    Rotating GameObject & Collider

    Hello everybody, I am new to Phaser and thought why not start with Phaser 3. My program dynamically changes the rotation of a box and I wanted the collider to rotate as well, but I didn't find how to archive this. var config = { type: Phaser.AUTO, width: 800, height: 600, //window.innerHeight; physics: { default: 'arcade', arcade: { gravity: { y: 300 }, debug: true } }, scene: { preload: preload, create: create, update: update } }; //... function create() { //... blockAU = blocks.create(200, 200, 'block'); //... } function update() { //... if(rotateLeft) blockAU.angle -= 1; else blockAU.angle += 1; blockAU.refreshBody(); //... } I didn't find examples for this, and the API and Docs where pretty confusing. Maybe I am using the wrong terminology when searching. I really hope you can help me with this
  14. andrei.nicolae

    Bring to top container

    Hi guys, does anyone know how can I bring in front of all of my scene a container(popup) that was created in a previous scene? Is this possbile? Thanks.
  15. scope2229

    Cant get player to display

    I've been using this post Player.js To try and separate my code but i'm failing to understand really how it works. var Player = new Phaser.Class({ Extends: Phaser.GameObjects.Image, initialize: function Player(scene, x, y){, scene); this.speed = 160; }, create: function(){ player = this.physics.add.sprite(32, config.height - 150, "ship"); player.setCollideWorldBounds(true); cursors = this.input.keyboard.createCursorKeys(); }, update: function(){ player.setVelocity(0,0); if (cursors.left.isDown){ player.setVelocityX(-this.speed); } else if (cursors.right.isDown){ player.setVelocityX(160); } else{ player.setVelocityX(0); } if (cursors.up.isDown){ player.setVelocityY(-150); } else if (cursors.down.isDown){ player.setVelocityY(+150); } } }); then i call the player in lvl1.js var lvl1State = new Phaser.Class({ Extends: Phaser.Scene, initialize: function lvl1(){, {key:"lvl1"}); }, create: function(){ this.starfield = this.add.tileSprite(400,300,800,4000, 'starfield'); this.juststars = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula1 = this.add.tileSprite(400,300,800,4000, 'nebula1'); this.stars2 = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula2 = this.add.tileSprite(400,300,2000,4000, 'nebula2'); this.createStarfield(); //add player this.player = new Player(, 0, 0);; },//end of create update: function(){ this.starfieldEffects(); },//end of update //-------GLOBAL FUNCTIONS-----// createStarfield: function(){ this.starfield = this.add.tileSprite(400,300,800,4000, 'starfield'); this.juststars = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula1 = this.add.tileSprite(400,300,800,4000, 'nebula1'); this.stars2 = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula2 = this.add.tileSprite(400,300,2000,4000, 'nebula2'); }, starfieldEffects: function(){ this.starfield.y += 0.5; this.juststars.y += 0.2; this.stars2.y += 3.8; this.nebula1.y += 0.8; this.nebula2.y += 0.3; this.nebula2.x -= 0.1; } });//end of var //ADD GAME TO SCENES Space_Game.scenes.push(lvl1State); but nothing on the page shows up. I managed to get rid of all the errors at first but then still nothing happened. Im at a loss as to how i use separate classes. i have 10 lvls so far and the player with the bullets is repeated over and over. id rather remove and learn how to separate than to just continue on how i have been with rewriting or copy paste all the repeated code then add new code for the level.
  16. scope2229

    Function organisastion help

    Hi I've been trying to learn phaser3 using ruby on rails and so far i managed to make a very small scale game but now ive managed to learn more about the bootState preloadState gameState etc and have managed to organise my file much more efficently as such setup.js // this imports all the neccessary files for the game in the below order. (i built one rails site that hosts many of my games rather than keep building a new one) Globals/globalvariables == Holds all variable for the game from player1 to creating the backgrounds boot == sets further config for the game loading preloader logo GameUi/preload == Loads all assets inside the game. Displays a progress bar with % complete and the current file loading GameUi/mainMenu == Choose whether to goto settings scoreboard or play a new game GameUi/scoreBoard == History of score GameUi/settings == game settings volume, screen size, language. Levels/lvl1 == bit obvious GameUi/gameOver == same after figuring all this out i managed to get a ok ish game to run. But now i have come into a problem. I want to have multiple weapons and those weapons have a bullet associated with them. looking at the defender example i decided to go with a class inside the create function called friendlyWeaponSelect which would increase the weapons damage depending on the weapons xp. as is with the code the way it is my game loads the lvl opens i can move around but the second i hit spacebar the game crashes and i get no reports as i have to reboot to ffix the crash. If someone could help that would be great. heres a look at what im trying. var lvl1State = new Phaser.Class({ Extends: Phaser.Scene, initialize: function lvl1(){, {key:"lvl1"}); }, create: function(){ this.starfield = this.add.tileSprite(400,300,800,4000, 'starfield'); this.juststars = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula1 = this.add.tileSprite(400,300,800,4000, 'nebula1'); this.stars2 = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula2 = this.add.tileSprite(400,300,2000,4000, 'nebula2'); friendlyWeaponSelect = new Phaser.Class({ Extends: Phaser.GameObjects.Image, initialize: function Weapon (scene){ //first select the startingGun with image and set its damage weaponSelect = startingGun; bulletSelect = laserLvl1; laserLvl1 =, scene, 0, 0, 'laserLvl1'); laserLvl1DMG = 5; if(startingGunXP = 10){ laserLvl1DMG = 10; }else if (startingGunXP = 20){ laserLvl1DMG = 15; }else if (startingGunXP = 30){ laserLvl1DMG = 20; }else if (startingGunXP = 30){ laserLvl1DMG = 25; }else if (startingGunXP = 40){ laserLvl1DMG = 30; }else if (startingGunXP = 50){ laserLvl1DMG = 35; }else if (startingGunXP = 60){ laserLvl1DMG = 40; }else if (startingGunXP = 70){ laserLvl1DMG = 45; }else if (startingGunXP = 80){ laserLvl1DMG = 50; }else if (startingGunXP = 90){ laserLvl1DMG = 55; }else if (startingGunXP = 100){ weaponSelect = startingGunLvl1; bulletSelect = laserLvl2; laserLvl2 =, scene, 0, 0, 'laserLvl1'); }else if (startingGunLvl1XP = 10){ laserLvl2DMG = 75; } this.speed = 0; this.born = 0; }, fire: function (player1){ this.setPosition(player1.x, player1.y); this.speed = Phaser.Math.GetSpeed(-1000 + player1.vel.y, 1); this.born = 0; }, update: function (time, delta){ this.y += this.speed * delta; this.born += delta; if (this.born > 1000){ this.setActive(false); this.setVisible(false); } } });//End of friendlyWeaponSelect this.createStarfield(); //this.createEnemies(); this.createBulletEmitter(); //set weapon and bullets used. this.bullets ={ classType: friendlyWeaponSelect, runChildUpdate: true }); //create player1 for now but update later for the option of player 2 player1 = this.physics.add.sprite(32, config.height - 150, "ship"); player1.setCollideWorldBounds(true); this.cursors = this.input.keyboard.createCursorKeys(); },//end of create update: function(time, delta){ player1.setVelocity(0,0); if (cursors.left.isDown){ player1.setVelocityX(-160); } else if (cursors.right.isDown){ player1.setVelocityX(160); } else{ player1.setVelocityX(0); } if (cursors.up.isDown){ player1.setVelocityY(-150); } else if (cursors.down.isDown){ player1.setVelocityY(+150); } // Emitters to bullets this.bullets.children.each(function(b) { if ( { this.laserEffect1.setPosition(b.x, b.y); this.laserEffect1.setSpeed(b.speed + 500 * -1); this.laserEffect1.emitParticle(1); } }, this); this.starfieldEffects(); },//end of update //-------GLOBAL FUNCTIONS-----// createStarfield: function(){ this.starfield = this.add.tileSprite(400,300,800,4000, 'starfield'); this.juststars = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula1 = this.add.tileSprite(400,300,800,4000, 'nebula1'); this.stars2 = this.add.tileSprite(400,300,800,4000, 'juststars'); this.nebula2 = this.add.tileSprite(400,300,2000,4000, 'nebula2'); }, createBulletEmitter: function(){ this.flares = this.add.particles('flares').createEmitter({ x: 1600, y: 200, angle: { min: 170, max: 190 }, scale: { start: 0.4, end: 0.2 }, blendMode: 'ADD', lifespan: 500, on: false }); }, starfieldEffects: function(){ this.starfield.y += 0.5; this.juststars.y += 0.2; this.stars2.y += 3.8; this.nebula1.y += 0.8; this.nebula2.y += 0.3; this.nebula2.x -= 0.1; } });//end of var //ADD GAME TO SCENES Space_Game.scenes.push(lvl1State); I though maybe using the class is not the right way about it and could possibly work by breaking the class into more managable global functions that are called upon just like when the background is created. have a function that selects the weapon depending on the xp and then a function for the bullet attached then when i set up the bullet use something like check what weaponSelect is == to find the bullet associated create a config for the animations of that particular bullet write the code to display the bullets then when spacebar is pressed the value from weaponselect and bulletSelect are used to then fire the function displaying the bullets. Unless someone has a better way or a good source to review ????
  17. when a game object belongs to multiple groups that have runChildUpdate enabled, is there a way to make sure its update only runs once per frame? or is there anyway to get around with it?
  18. Hello all! I'm make top down game in Phaser 3.9.0 and have a problem. I'm created map in Tiled ver. 0.18.2. and export it in .CSV. It turned out , 5 files = 5 layers. How all of them combine to a mp? My code. function preload () { this.load.image('tiles', 'assets/map/tileset/tilesheet.png'); this.load.tilemapCSV('map', 'assets/map/csv/world_ground.csv'); this.load.tilemapCSV('map', 'assets/map/csv/world_groundvariations.csv'); this.load.tilemapCSV('map', 'assets/map/csv/world_grass.csv'); //and other... } function create () { //MAP map = this.make.tilemap({key : 'map', tileWidth: 32, tileHeight: 32}); var tileset = map.addTilesetImage('tiles'); ground = map.createStaticLayer(0, tileset, 0, 0); grass = map.createStaticLayer(1,tileset,0,0); } Error: Cannot create tilemap layer, invalid layer ID given: 1 This is what is displayed on the screen. Only First Layer
  19. I am trying to get all the children of a container displayed inside a zone. var container = this.add.container(200, 200); var sprite0 = this.add.sprite(0, 0, 'box'); var sprite1 = this.add.sprite(0, 100, 'box'); container.add([ sprite0, sprite1 ]); var graphics =; var color = 0x00ffff; var thickness = 2; var alpha = 1; graphics.lineStyle(thickness, color, alpha); graphics.strokeRect(32, 32, 256, 256); graphics.fillStyle(color, 0); graphics.fillRect(32, 32, 256, 256); container.mask = new Phaser.Display.Masks.GeometryMask(this, graphics); However when they are outside and overlapping is seems like they are blending on each other? How should I proceed?
  20. Ad4m


    Hi all, I'm wondering where can I find the game-configuration-object's description? I was browsing the docs here and, even if I don't know if it does have what I am looking for, when I clicked in the GameConfig param link, I got an 404 Error. So now I don't know where to look for. Can you help me understand the game config object?
  21. Antriel

    Tap Tap Plane

    Test your tapping and timing skills in this fun game. Traditional flappy gameplay, tap to stay afloat! Avoid obstacles and get as far as you can. Unlock five different secrets, each funnier than the previous one. Can you unlock them all? Play the game here: Developed in Haxe, using phaser v3 You can put the game on your portal using this url. The game is also available for licensing.
  22. When I extend a class, as shown here: export class AbstractType extends Phaser.GameObjects.Sprite and try to add a subclass of that type(AbstractType) into a container, symbols.add(symbol) I get the following error: TypeError: gameObject.once is not a function at Container.addHandler (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:57689:1) at Object.Add (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:100986:1) at Container.add (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:57790:1) at NumberBarController.addSymbol (/Users/schwarzj/Desktop/symphonymathhtml5/app/controllers/numberbar.controller.ts:807:12) at NumberBarController.layoutTask (/Users/schwarzj/Desktop/symphonymathhtml5/app/controllers/numberbar.controller.ts:481:12) at NumberBarController.onSoundsLoad (/Users/schwarzj/Desktop/symphonymathhtml5/app/controllers/numberbar.controller.ts:364:9) at EventEmitter.emit (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:1960:1) at Function.AudioController.sendAudioLoadComplete (/Users/schwarzj/Desktop/symphonymathhtml5/app/controllers/audio.controller.ts:300:44) at EventEmitter.AudioController.onSoundsLoaded (/Users/schwarzj/Desktop/symphonymathhtml5/app/controllers/audio.controller.ts:250:25) at EventEmitter.emit (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:1939:1) TypeError: child.setScrollFactor is not a function at ContainerWebGLRenderer [as renderWebGL] (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:135801:1) at WebGLRenderer.render (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:63279:1) at CameraManager.render (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:110694:1) at Systems.render (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:25617:1) at SceneManager.render (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:43412:1) at Game.step (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:105691:1) at TimeStep.step (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:102205:1) at step (/Users/schwarzj/Desktop/symphonymathhtml5/node_modules/phaser/dist/phaser.js:64607:1) Any suggestions on how to move forward from here? Thank you!
  23. Jacko333100

    Camera Phaser 33

    Hey Guys, i created a camera in phaser 3 and everything works fine. thats my code. this.cameras.main.setSize(500,600); this.cameras.main.startFollow(this.kaefer); this.cameras.main.setBounds(0,0,this.GAME_WIDTH,this.GAME_HEIGHT); and now i want the camera to move with my player only and only if the player moves to the right or to the left( so no camera moving when my player jumps). and thats my code for moving the player. Can anyone help me please. i tried an if clause. but that didnt work fine. PLEASE HELP!!!! move(){ if (this.cursors.left.isDown){ this.setVelocityX(-160); + 'left', true); if(this.cursors.up.isDown && this.body.touching.down){ this.setVelocityY(-400); } } else if (this.cursors.right.isDown){ this.setVelocityX(160); + 'right', true); if(this.cursors.up.isDown && this.body.touching.down){ this.setVelocityY(-400); } } else if(this.cursors.up.isDown && this.body.touching.down){ this.setVelocityY(-400); }else{ this.setVelocityX(0); + 'turn'); } }
  24. So I am working on my just general knowledge of how phaser works, I have only done two tutorials. But I think I have a decent grasp on it so far. But I am running into a little problem, I am trying to use the Follower object, so that I don't have to create the vec2 and attach it, but I don't seem to understand the documentation or what it means by "If this Game Object is enabled for physics then this property will contain a reference to a Physics Body." I have scoured the docs for hours. I see how to 'enable' in arcade physics but I cannot find any reference to how with impact physics. I am able to create a body object, and assign it to the game object, as well as assign the the game object to the body, but they do not move in tandem. in fact the body does not move at all. P.S. This is not the only bug, when converting from matter.js to impact.js physics my logic on pausing player movement when the dialog modal broke. but one problem at a time.. P.P.S I know its not the best code //SHIVA path3 = new Phaser.Curves.Path(550, 450); path3.lineTo(450, 450); path3.lineTo(450, 505); path3.lineTo(550, 505); path3.lineTo(550, 450); path3.lineTo(450, 450); shiva = this.add.follower(path3, 550, 450, 'shiva'); //Phaser.GameObjects.BuildGameObject(this, Phaser.GameObjects.PathFollower) //, impact); shivaBody = this.impact.add.body(550, 450, 16, 12); //TRYING DIFFERENT WAS TO SET BODY //shivaBody.setOffset(550, 450, 16, 12); shiva.body = shivaBody; shivaBody.setGameObject(shiva); = "shiva"; shiva.setRotation(); shiva.depth = 30; //ALT WAY TO GET NAME // = "shiva"; shiva.setData(npc, true); shiva.setData("name", "shiva"); npcBodies[2] = shivaBody; npcs.add(shiva); shiva.startFollow({ ease: 'Linear', duration:6000, yoyo:true, repeat: -1, _delay: 200, delay: 100 }); P.P.P.S I also tried;; dialog_plugin.js game.js index.html city.json
  25. const atlasData = { // some data... } this.load.atlas("one", "one.png", atlasData); this.load.atlas("two", "two.png", atlasData); gets this error: File.js:557 Uncaught TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided. at Function.File.createObjectURL (File.js:557) at ImageFile.onProcess (ImageFile.js:142) at LoaderPlugin.nextFile (LoaderPlugin.js:827) at ImageFile.onLoad (File.js:328) deleting either line works perfectly fine