Jump to content

Overlap between sprite and object


kapu
 Share

Recommended Posts

Hi, I would like to know if it is possible to create a function which asks if a sprite (playerA) overlaps with an object from a JSON tilemap without sprite? If my playerA overlaps this invisible object a function would be started.

I already tried the overlap function between two sprites and it worked:

function onDragStop(sprite, pointer) {

 if (checkOverlap(playerA,sprite)){
   console.log("Overlap!");
 }
 else {
   console.log("Dropped");

 }


function checkOverlap(spriteA, spriteB) {

    var boundsA = spriteA.getBounds();
    var boundsB = spriteB.getBounds();

    return Phaser.Rectangle.intersects(boundsA, boundsB);

}

Here is an extract of the JSON tilemap.

{ "height":10,
 "layers":[
        {
         "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
         "height":10,
         "name":"Calque de Tile 1",
         "opacity":1,
         "type":"tilelayer",
         "visible":true,
         "width":20,
         "x":0,
         "y":0
        }, 
        {
         "image":"..\/world.png",
         "name":"World base",
         "opacity":1,
         "type":"imagelayer",
         "visible":true,
         "x":0,
         "y":0
        }, 
        {
         "draworder":"topdown",
         "name":"First Object",
         "objects":[
                {
                 "gid":1,
                 "height":64,
                 "id":5,
                 "name":"",
                 "rotation":0,
                 "type":"",
                 "visible":true,
                 "width":64,
                 "x":317.52500448109,
                 "y":195.111668757842
                }],
         "opacity":1,
         "type":"objectgroup",
         "visible":true,
         "x":0,
         "y":0
        }, 
        {
         "draworder":"topdown",
         "name":"Second Object",
         "objects":[
                {
                 "gid":1,
                 "height":64,
                 "id":11,
                 "name":"",
                 "rotation":0,
                 "type":"",
                 "visible":true,
                 "width":64,
                 "x":449.212619275898,
                 "y":193.621695658129
                }],
         "opacity":1,
         "type":"objectgroup",
         "visible":true,
         "x":0,
         "y":0
        }, 

And I would like to play a sound when the player overlaps an object, and each object would have a different effect.

And then I don't know how to specificaly call one object and check if it's overlaping with the player.

objects = game.add.group();
    objects.enableBody=true;
    game.load.tilemap('world',"assets/map/world.json",null,Phaser.Tilemap.TILED_JSON);
    game.load.image('tileset',"assets/world.png");
 world = this.add.tilemap('world');
   world.addTilesetImage('tileset','tileset');
   layer = world.createLayer('Calque de Tile 1');
   layer.resizeWorld();
   world.createFromObjects('First Object',1,'',0,true,false,objects);

I don't knwo if these parts of code are enough to understand what I would like to do?  I don't know where to get the informations and documentation about that =/ Any information is welcomed ^^.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...