Commit graph

146 commits

Author SHA1 Message Date
Richard Davey
3c3d09e46a Docs update. 2016-07-29 03:39:51 +01:00
photonstorm
3ba00bbf2d Loads of work on tilemap collision, and offset support. You can now collide with a tilemap no matter where it is on the screen, or which layer it's from. 2016-07-22 17:02:10 +01:00
photonstorm
9fb27b6fe2 Moving all the getTiles calls back again, as it's just a bit TOO API breaking to move them, for the sake of a few KB. 2016-07-22 14:05:35 +01:00
Richard Davey
d8560eb3bc Fixed Tilemap collision. 2016-07-22 04:32:56 +01:00
Richard Davey
91b9513e7e TilemapLayer.getTileX, getTileY and getTileXY all now required a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.
Tilemap.getRayCastTiles now requires a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.

Tilemap.getTiles now requires a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.
2016-07-22 04:10:55 +01:00
Richard Davey
020cb01056 Canvas tilemap renderer fixes. 2016-07-22 03:55:21 +01:00
Richard Davey
be92e41366 The private methods TilemapLayer._fixX, _unfixX, _fixY and _unfixY have been moved to `Tilemap. 2016-07-22 03:20:56 +01:00
Richard Davey
ef9f53e350 TilemapLayer.getRayCastTiles has been moved to Tilemap.getRayCastTiles.
TilemapLayer.rayStepRate has been moved to Tilemap.rayStepRate.
TilemapLayer.getTiles has been moved to Tilemap.getTiles.
2016-07-22 03:03:50 +01:00
Richard Davey
f669202fb4 Loads of refactoring. Removed the internal layer creation, added in first/last gid detection, sorted out multiple identical layer creation. 2016-07-22 02:39:35 +01:00
Richard Davey
91e7b2ca9c Updated properties. 2016-07-22 00:30:55 +01:00
photonstorm
6661952d50 Masses of changes to get tilemap layer display dimensions filtering down to linked child layers. Also allowed offset to work correctly, and fixed the display sizes with offset bounds. Exposed offset as layer.x/y. Need to duplicate in canvas variation. 2016-07-21 16:56:17 +01:00
Richard Davey
c36babcc1c Code formatting and docs updates. 2016-07-21 10:45:23 +01:00
Pete Baron
aecbd7c267 Add width/height to debug log for new layers. 2016-07-21 17:13:12 +12:00
Pete Baron
42a2608036 Fix createInternalLayer to use the 'base layer' rather than assume this.layers[0] was the base layer for each new one. This makes the multi-tileset, multi-layer demos work correctly. 2016-07-21 16:27:35 +12:00
Pete Baron
f958567a48 Remove more dead code. 2016-07-21 15:24:05 +12:00
Pete Baron
70f95d2558 Remove dead code (commented out).
Add flag to detect when an 'internal layer' is not needed (none of the specified tileset is used in the parent layer) and skip creating one.
2016-07-21 14:58:25 +12:00
Richard Davey
7645e773dc More tidying and jshint fixing. 2016-07-20 17:28:19 +01:00
Richard Davey
49fb798f60 Fixed createInternalLayer loop. 2016-07-20 16:24:06 +01:00
Richard Davey
1105e4821d Added more info to console.warn. 2016-07-20 04:53:21 +01:00
Richard Davey
1e181fa30d Tidying up new Tilemap classes. 2016-07-18 23:24:49 +01:00
Richard Davey
8d1b670df1 Merge remote-tracking branch 'origin/webgl-tilemap' into dev 2016-07-18 23:00:35 +01:00
Pete Baron
550954210e Clean-up and comments. 2016-07-18 13:24:29 +12:00
Pete Baron
4f1728c62d First working demo of multiple tileset sources specified in a single Tiled map layer being rendered as separate Batch drawing lists by the webgl renderer.
Phaser.Tilemap now creates internal map layers for each tileset except the first one (which will be handled by the createLayer call from the game).  It also stores a reference to each tileset where the new map layers can access it.
Phaser.TilemapLayerGL uses the new tileset reference to ensure the correct base image and tile sizes are used for each new layer.
PIXI.Tilemap: added initialisation of glBatch to null in c'tor.
Phaser.TilemapParser was cleaned up to remove the now unnecessary tilemap parameter and the attempt to create layers while parsing.
2016-06-27 14:41:46 +12:00
Pete Baron
8d4733c8a5 Commit current state of development before trying something different (see last note in the progress doc). Will revert to previous commits if this attempt fails. 2016-06-27 11:46:52 +12:00
Pete Baron
310b151924 Removed pixiTest flag, using renderType instead. 2016-06-13 18:39:52 +12:00
Pete Baron
a8405bd066 add comment 2016-06-13 17:26:33 +12:00
Pete Baron
e0008793bd Prepare Phaser.Tilemap for testing other examples/tilemaps with the TilemapLayerGL code.
Ensure that TilemapLayerGL is treated as a valid layer the same as TilemapLayer.

TODO: I've hardwired the PIXI TilemapLayerGL test flag (pixiTest) to be 'on' unless otherwise specified... need to turn this off before final commits!
2016-05-13 12:24:55 +12:00
photonstorm
368913fd98 Removed WebGL Tilemap renderer, has moved to its own branch to be part of 2.5.0. 2016-05-11 11:27:36 +01:00
Pete Baron
69abe492cc Modified Phaser.Tilemap and PIXI.Tilemap to support the new Phaser.TilemapLayerGL objects.
The PIXI file has a reverse dependency on Phaser for it's 'layer' parameter which contains a Phaser.Tilemap (which holds the map data).  The other changes adapt it to the new data source (previously this expected a raw JSON object encoded like the Mario.json map is).

The Phaser file now keeps a reference to the data parsed from the original map, and adds a branch in createLayer to build a TilemapLayerGL instead of a TilemapLayer.
2016-05-05 15:58:03 +12:00
photonstorm
f40cfbe2ae 2015 - 2016. 2016-04-04 22:16:16 +01:00
Richard Davey
a1c3050bf7 Tilemap.getObjectIndex has been removed as it didn't work correctly in most cases, and it's easier to just scan the Tilemap.objects object directly anyway (#2242) 2016-02-03 21:35:35 +00:00
photonstorm
8cf96a2f78 Docs fix #2271 2016-02-02 16:28:33 +00:00
Richard Davey
acebd74c26 Merge pull request #2241 from s4wny/patch-1
Fixed misleading error message
2016-02-02 02:33:57 +02:00
Ryo Fujiwara
b75d6c4a92 Fixed a bug of map.hasTile 2016-01-19 12:40:02 +09:00
Sony?
70c64eb8fa Fixed misleading error message
Shouldn't it be `tileset` instead of `key`?

We can't find any entry with the name `tileset` in the JSON file. The `key` hasn't anything to do with the JSON file, that is our tilesset image we loaded with thaser.
2015-12-02 10:05:52 +01:00
photonstorm
09f5742410 Tilemap.shuffle was calling the deprecated Phaser.Utils.shuffle, which has now moved to Phaser.ArrayUtils.shuffle. 2015-08-24 12:02:43 +01:00
photonstorm
5ffb5b558d Tilemap.createFromObjects has been strengthened so that will only create Sprites for matching gids/ids/names. It also only sets the Sprite width and height values if they are present in the Tiled data (thanks @pparke #2012) 2015-08-20 13:22:06 +01:00
photonstorm
f15fe6706c All undefined argument checks were changed from if (typeof x === 'undefined') to if (x === undefined) removing the typeof check and saving some bytes across the codebase in the process. 2015-07-22 10:37:15 +01:00
Richard Davey
8aaa8de985 Fixed issue with tilesets not updating correctly. 2015-07-07 02:38:14 +01:00
asyed94
6771c656e9 Removed trailing whitespace. 2015-06-29 16:32:16 -05:00
asyed94
8fefabcf59 Implemented Tiled Image Collection support.
Created class ImageCollection.js to internally handle Image Collection
data.

Added imagecollections member to Tilemap.js to access parsed Image
Collection data.

Added ability to parse Image Collections from Tiled json data to
TilemapParser.js
2015-06-27 15:30:26 -05:00
photonstorm
04a25c5d9b Small fix + jsdoc update. 2015-06-17 01:04:55 +01:00
Richard Davey
14733e9b90 Tilemap.addTilesetImage can now accept a BitmapData as the key parameter and will use the BitmapData to render the tileset with instead of an image from the cache (thanks to @unstoppablecarl for the idea #1838) 2015-06-16 23:17:46 +01:00
photonstorm
f155ad452c Tilemap.createFromObjects has been updated for Tiled 0.11 and can now look-up object layers based on id, uid or name. It will also now copy over Sprite scaling properties if set (thanks @mandarinx #1738) 2015-04-13 12:40:12 +01:00
Richard Davey
78e7be5c96 Merge pull request #1738 from mandarinx/patch-1
Looking up object layers based on id, uid or name
2015-04-13 12:35:24 +01:00
Thomas Viktil
b406a61262 Looking up object layers based on id, uid or name
The description of the method stated that you could pass a string to look up an object layer based on its name, but the original code only looked for a gui property, regardless of type.

I'm using Tiled 0.11.0 on OSX, and my exported json-file doesn't contain a gui property on the object layers. Here's a snippet of my file:
```
{
    "layers":[
        {
         "draworder":"topdown",
         "height":0,
         "name":"Objects",
         "objects":[
                {
                 "height":48,
                 "id":1,
                 "name":"pier",
                 "properties":
                    {

                    },
                 "rotation":0,
                 "type":"",
                 "visible":true,
                 "width":64,
                 "x":208,
                 "y":240
                }],
         "opacity":1,
         "properties":
            {
             "type":"pier"
            },
         "type":"objectgroup",
         "visible":true,
         "width":0,
         "x":0,
         "y":0
        }]
    }]
}
```

The property in my file is called id and not uid. This might be due to changes in one of the later releases of Tiled. I kept the check for uid to avoid possibly breaking compatibility with older versions of Tiled.

I also added scaling of the sprite.

Feel free to make formatting changes, or rewrite the function to better fit the programming style of Phaser.
2015-04-11 22:16:17 +02:00
Alan Smithee
d2e3a69525 Adds nonNull parameter to Tilemap.getTileWorldXY
Since Tilemap.getTile lets you specify wether to return null
or an empty tile when index is -1, the WorldXY equivalent
should offer the same possibility for a more unified interface.
2015-04-06 10:08:37 +00:00
photonstorm
f4eff6359c Added isArray check. 2015-03-05 14:02:24 +00:00
photonstorm
a69e53f901 Copyright date change. 2015-02-25 03:36:23 +00:00
photonstorm
35a04b2f1e TilemapParser now supports Tiled 0.11 version maps which includes the rotation property on all Object types.
Tilemap.createFromObjects now checks for a `rotation` property on the Object and if present will set it as the Sprite.angle (#1433)
2015-02-08 23:25:41 +00:00