Commit graph

79 commits

Author SHA1 Message Date
Michael Hadley
105dc755ce Tilemap & layers: optimized SetCollision methods
v2 was structured in a way where a full pass through ALL tiles would occur if SetCollisionBetween or SetCollisionByExclusion was used. That's a huge penalty for large tilemaps, so this version duplicates some loop code for the sake of speed.
2017-11-20 20:08:50 -06:00
Michael Hadley
21584f922c Fix for last commit 2017-11-18 16:11:51 -06:00
Michael Hadley
3f14382951 Make naming consistent for accessing individual tiles (e.g. getTile vs getTileAt) 2017-11-18 15:41:26 -06:00
Michael Hadley
759252a078 Better handling of resizing a tilemap
Force the tilesets and tiles to inherit their tile size from the tilemap
2017-11-18 15:40:27 -06:00
Michael Hadley
e2960486a9 Filling out Tile with some methods & props from v2 2017-11-18 15:38:46 -06:00
Michael Hadley
b48d82daee Format name typo 2017-11-18 08:41:57 -06:00
Michael Hadley
d2f72fbe58 Create CullTiles component to allow static and dynamic layers to cull when needed
Fixes performance issue with canvas static tile renderer on large maps
2017-11-18 08:31:59 -06:00
Michael Hadley
b5fb0b8879 Refactor in order to update TilemapCreator & TilemapFactory 2017-11-17 15:55:12 -06:00
Michael Hadley
f82217e868 Move Parse to tilemap/Parse 2017-11-17 15:54:18 -06:00
Michael Hadley
49854bfd1b Format Typo 2017-11-17 15:49:32 -06:00
Michael Hadley
6da642bd99 Set alpha in dynamic layer canvas renderer
Set it directly because of the explicit save/restore commands throw the renderer's internal alpha out-of-sync
2017-11-17 15:31:41 -06:00
Michael Hadley
5535af2a17 Bug fix: tilemap layer renderer didn't account for layer xy position 2017-11-17 13:53:11 -06:00
Michael Hadley
09ed883f4d Remove old todos in static layer 2017-11-17 13:52:32 -06:00
Michael Hadley
b8e8d9d3aa Made data structure for maps and layers more explicit via classes & default props 2017-11-17 13:16:39 -06:00
Michael Hadley
3266974ea0 Tilemap & layer WorldXY methods: get, has, put, remove 2017-11-17 07:58:33 -06:00
Michael Hadley
b34d18e10c World to Tile conversion on maps and layers - both accounting for camera scroll 2017-11-16 20:36:45 -06:00
Michael Hadley
205675c387 Tilemap: prevent methods from acting on a static tilemap layer & warn user 2017-11-16 19:58:35 -06:00
Michael Hadley
b34f8a9dcc Associate tilemap layer data with the static or dynamic tilemap layer that "owns" it
This enforces 1x tilemap layer data <-> 1x static/dynamic tilemap layer and allows the Tilemap instance to look up the static/dynamic tilemap layer when needed.
2017-11-16 19:55:17 -06:00
Michael Hadley
83b7df2a73 Tilemap: destroy, removeAllLayers, setTileSize 2017-11-16 19:09:28 -06:00
Michael Hadley
63fb2e863f Tilemap & layer: ReplaceByIndex, FindByIndex, SwapByIndex 2017-11-16 19:08:58 -06:00
Michael Hadley
4c306d60a7 Last Tileset API method to match v2 2017-11-16 15:25:45 -06:00
Michael Hadley
e6c6d1ddce TIlemap & layers: GetTileAtWorldXY 2017-11-16 13:27:52 -06:00
Michael Hadley
c2268f3dee PutTile, RemoveTile & Tile#Copy 2017-11-16 13:09:07 -06:00
Michael Hadley
2b08daff32 Tilemap: modularize empty map generators & add createBlankDynamicLayer 2017-11-16 11:44:24 -06:00
Michael Hadley
efae7f5796 DynamicTilemapLayer updates that should have been in the last commit 2017-11-15 20:16:43 -06:00
Michael Hadley
355d9accf3 More tilemap & layer fun: Copy, FIll, Randomize, Shuffle, GetTilesWithin
Note: methods that mutate the tiles are not installed on StaticTilemapLayer
2017-11-15 20:06:07 -06:00
Michael Hadley
db5cab8494 Fix: wrong sign for canvas translation 2017-11-15 19:15:12 -06:00
Michael Hadley
b714e2afdf Add methods for looping over & accessing groups of tiles to map & layers 2017-11-15 16:36:41 -06:00
Michael Hadley
74842aae1d Tilemap & Layers: hasTileAt & better naming 2017-11-15 15:28:15 -06:00
Michael Hadley
1be6847a87 Tilemap: better naming, currentLayer -> currentLayerIndex 2017-11-15 15:05:11 -06:00
Michael Hadley
48f1e60743 Tilemap: reorder and add get/set layer 2017-11-15 14:55:26 -06:00
Michael Hadley
84a86ae0f7 Share GetTileAt across tilemap layers and tilemap 2017-11-15 13:50:56 -06:00
Michael Hadley
6d1b17258b Add flip capability to dynamic webgl & canvas tilemap renderers 2017-11-14 20:45:05 -06:00
Michael Hadley
6f4f571f98 Canvas tilemap layers: add alpha support 2017-11-14 16:13:07 -06:00
Michael Hadley
ece0bf7811 Tilemap layers WIP - both layers now use new Tile class 2017-11-14 15:35:18 -06:00
Michael Hadley
13ded52c6b New Tile class to be shared across static and dynamic layers 2017-11-14 15:34:33 -06:00
Michael Hadley
3f08689c44 Tilemap parsers: remove width & height parameters since they are inferred 2017-11-14 15:33:13 -06:00
Michael Hadley
bf19553135 Tilemap parsers: add ability to insert null instead of blank tile 2017-11-14 15:02:19 -06:00
Michael Hadley
a7424fa750 Progress on Tilemap - can now link tileset images and create layers 2017-11-11 10:38:52 -06:00
Michael Hadley
780bd76c6f Tilemap Parsers: refactor csv parser into csv parser + 2D array parser 2017-11-10 21:38:42 -06:00
Michael Hadley
1ba75cd50c ParseTiledJSON eslint auto fix 2017-11-10 17:13:11 -06:00
Michael Hadley
f9f6d95097 Tilemap: json tiled parser from v2 2017-11-10 15:57:38 -06:00
Michael Hadley
249fe58bba Tileset: tile lookup features 2017-11-10 15:56:14 -06:00
Michael Hadley
a76a6535e0 CSV tilemap parser & dummy tiled json parser 2017-11-09 20:50:25 -06:00
Michael Hadley
1b1bc41f81 Adding CSV & JSON tilemaps to BaseLoader 2017-11-09 12:21:06 -06:00
Michael Hadley
0804bf7595 Rename static & dynamic tilemaps -> tilemap layer 2017-11-09 12:18:23 -06:00
Richard Davey
0d38e232e6 Both Static and Dynamic Tilemaps support the new property skipIndexZero which allows them to skip over index 0 tiles. Works in both canvas and webgl. Fix #3052 2017-11-03 16:52:57 +00:00
Felipe Alfonso
9649347287 Static Tilemap WebGL Renderer now applies camera transform matrix correctly 2017-11-01 14:55:01 -03:00
Richard Davey
b4edeaec10 Updated GameObjectCreator to use same system as GameObjectFactory. 2017-09-14 02:27:29 +01:00
Richard Davey
1340e6930f Refactored the GameObjectFactory so it's now populated by the GameObjects directly, avoids globbing all GOs into it 2017-09-14 01:32:10 +01:00