How do I get a character to enter a building in Phaser 3?












0















I am making a top down RPG styled game using Tiled and Phaser 3. I have already made a map in Tiled for the city and store. Also, I have already set the game objects for the location of the store where the player is suppose to go in order to enter the store and the location where the player is supposed to appear. The thing I am having trouble figuring out the code I am suppose to use in order to facilitate this function, as well as going back to city map. One more thing, If there are any other ideas on how to go about this I am all ears.



Update: I got the character to load on the map with the function I already have but problem is that I can’t move my character.



Here is the function I have so far:






// When the player walks into the store.
player.onCollide = new Phaser.signal();
Store.onCollide.add(enterstore,this);

function enterstore(player){
const map2 = this.make.tilemap({ key: "map2" });
const tileset2 = map.addTilesetImage("store", "tiles2");

const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

storeLayer.setCollisionByProperty({ collides: true });

this.physics.add.collider(player, storeLayer);

storeLayer.setDepth(10);

const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
const Store = map.findObject("Objects", obj => obj.name === "store");

player = this.physics.add
.sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
.setSize(30, 40)
.setOffset(282, 202);

};












share|improve this question





























    0















    I am making a top down RPG styled game using Tiled and Phaser 3. I have already made a map in Tiled for the city and store. Also, I have already set the game objects for the location of the store where the player is suppose to go in order to enter the store and the location where the player is supposed to appear. The thing I am having trouble figuring out the code I am suppose to use in order to facilitate this function, as well as going back to city map. One more thing, If there are any other ideas on how to go about this I am all ears.



    Update: I got the character to load on the map with the function I already have but problem is that I can’t move my character.



    Here is the function I have so far:






    // When the player walks into the store.
    player.onCollide = new Phaser.signal();
    Store.onCollide.add(enterstore,this);

    function enterstore(player){
    const map2 = this.make.tilemap({ key: "map2" });
    const tileset2 = map.addTilesetImage("store", "tiles2");

    const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

    storeLayer.setCollisionByProperty({ collides: true });

    this.physics.add.collider(player, storeLayer);

    storeLayer.setDepth(10);

    const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
    const Store = map.findObject("Objects", obj => obj.name === "store");

    player = this.physics.add
    .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
    .setSize(30, 40)
    .setOffset(282, 202);

    };












    share|improve this question



























      0












      0








      0








      I am making a top down RPG styled game using Tiled and Phaser 3. I have already made a map in Tiled for the city and store. Also, I have already set the game objects for the location of the store where the player is suppose to go in order to enter the store and the location where the player is supposed to appear. The thing I am having trouble figuring out the code I am suppose to use in order to facilitate this function, as well as going back to city map. One more thing, If there are any other ideas on how to go about this I am all ears.



      Update: I got the character to load on the map with the function I already have but problem is that I can’t move my character.



      Here is the function I have so far:






      // When the player walks into the store.
      player.onCollide = new Phaser.signal();
      Store.onCollide.add(enterstore,this);

      function enterstore(player){
      const map2 = this.make.tilemap({ key: "map2" });
      const tileset2 = map.addTilesetImage("store", "tiles2");

      const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

      storeLayer.setCollisionByProperty({ collides: true });

      this.physics.add.collider(player, storeLayer);

      storeLayer.setDepth(10);

      const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
      const Store = map.findObject("Objects", obj => obj.name === "store");

      player = this.physics.add
      .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
      .setSize(30, 40)
      .setOffset(282, 202);

      };












      share|improve this question
















      I am making a top down RPG styled game using Tiled and Phaser 3. I have already made a map in Tiled for the city and store. Also, I have already set the game objects for the location of the store where the player is suppose to go in order to enter the store and the location where the player is supposed to appear. The thing I am having trouble figuring out the code I am suppose to use in order to facilitate this function, as well as going back to city map. One more thing, If there are any other ideas on how to go about this I am all ears.



      Update: I got the character to load on the map with the function I already have but problem is that I can’t move my character.



      Here is the function I have so far:






      // When the player walks into the store.
      player.onCollide = new Phaser.signal();
      Store.onCollide.add(enterstore,this);

      function enterstore(player){
      const map2 = this.make.tilemap({ key: "map2" });
      const tileset2 = map.addTilesetImage("store", "tiles2");

      const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

      storeLayer.setCollisionByProperty({ collides: true });

      this.physics.add.collider(player, storeLayer);

      storeLayer.setDepth(10);

      const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
      const Store = map.findObject("Objects", obj => obj.name === "store");

      player = this.physics.add
      .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
      .setSize(30, 40)
      .setOffset(282, 202);

      };








      // When the player walks into the store.
      player.onCollide = new Phaser.signal();
      Store.onCollide.add(enterstore,this);

      function enterstore(player){
      const map2 = this.make.tilemap({ key: "map2" });
      const tileset2 = map.addTilesetImage("store", "tiles2");

      const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

      storeLayer.setCollisionByProperty({ collides: true });

      this.physics.add.collider(player, storeLayer);

      storeLayer.setDepth(10);

      const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
      const Store = map.findObject("Objects", obj => obj.name === "store");

      player = this.physics.add
      .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
      .setSize(30, 40)
      .setOffset(282, 202);

      };





      // When the player walks into the store.
      player.onCollide = new Phaser.signal();
      Store.onCollide.add(enterstore,this);

      function enterstore(player){
      const map2 = this.make.tilemap({ key: "map2" });
      const tileset2 = map.addTilesetImage("store", "tiles2");

      const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

      storeLayer.setCollisionByProperty({ collides: true });

      this.physics.add.collider(player, storeLayer);

      storeLayer.setDepth(10);

      const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
      const Store = map.findObject("Objects", obj => obj.name === "store");

      player = this.physics.add
      .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
      .setSize(30, 40)
      .setOffset(282, 202);

      };






      javascript json html5 phaser-framework tiled






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Feb 1 at 19:10







      ChetD90

















      asked Jan 2 at 18:08









      ChetD90ChetD90

      163




      163
























          1 Answer
          1






          active

          oldest

          votes


















          0














          My solution for this is quite simple actualy. (Im not using Phaser, but the concept is the same)



          In Tiled I put Rectangles in a seperate object layer. These rectangles cover areas that lead to a different location like doors, holes in the ground etc.
          In the properties of the object I define a target location.



          Code wise you simply check for collision with those rectangles. If the player collides with one of those you move him to the target location (seperate Tiled file or different coordinates on the current map).






          share|improve this answer
























          • This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

            – ChetD90
            Jan 5 at 19:07











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54011135%2fhow-do-i-get-a-character-to-enter-a-building-in-phaser-3%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          My solution for this is quite simple actualy. (Im not using Phaser, but the concept is the same)



          In Tiled I put Rectangles in a seperate object layer. These rectangles cover areas that lead to a different location like doors, holes in the ground etc.
          In the properties of the object I define a target location.



          Code wise you simply check for collision with those rectangles. If the player collides with one of those you move him to the target location (seperate Tiled file or different coordinates on the current map).






          share|improve this answer
























          • This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

            – ChetD90
            Jan 5 at 19:07
















          0














          My solution for this is quite simple actualy. (Im not using Phaser, but the concept is the same)



          In Tiled I put Rectangles in a seperate object layer. These rectangles cover areas that lead to a different location like doors, holes in the ground etc.
          In the properties of the object I define a target location.



          Code wise you simply check for collision with those rectangles. If the player collides with one of those you move him to the target location (seperate Tiled file or different coordinates on the current map).






          share|improve this answer
























          • This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

            – ChetD90
            Jan 5 at 19:07














          0












          0








          0







          My solution for this is quite simple actualy. (Im not using Phaser, but the concept is the same)



          In Tiled I put Rectangles in a seperate object layer. These rectangles cover areas that lead to a different location like doors, holes in the ground etc.
          In the properties of the object I define a target location.



          Code wise you simply check for collision with those rectangles. If the player collides with one of those you move him to the target location (seperate Tiled file or different coordinates on the current map).






          share|improve this answer













          My solution for this is quite simple actualy. (Im not using Phaser, but the concept is the same)



          In Tiled I put Rectangles in a seperate object layer. These rectangles cover areas that lead to a different location like doors, holes in the ground etc.
          In the properties of the object I define a target location.



          Code wise you simply check for collision with those rectangles. If the player collides with one of those you move him to the target location (seperate Tiled file or different coordinates on the current map).







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 3 at 15:22









          Pavel SlesingerPavel Slesinger

          31919




          31919













          • This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

            – ChetD90
            Jan 5 at 19:07



















          • This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

            – ChetD90
            Jan 5 at 19:07

















          This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

          – ChetD90
          Jan 5 at 19:07





          This is really good advice thank you, I know that I must preload the map of the store but do I have to use the setCollisionByProperty in order to check for the collision of the object?

          – ChetD90
          Jan 5 at 19:07




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54011135%2fhow-do-i-get-a-character-to-enter-a-building-in-phaser-3%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas

          Can't read property showImagePicker of undefined in react native iOS