Commit graph

659 commits

Author SHA1 Message Date
Michael Hadley
b21fc88660 Dynamic Tilemap WebGL - respect layer scale in rendering 2017-11-25 17:09:56 -06:00
Michael Hadley
557ac4fe6e Add GetTilesWithinWorldXY method to tilemap and layers 2017-11-25 08:42:19 -06:00
Michael Hadley
432c1c0f6d GetTilesWithin: clip rectangular area to map bounds 2017-11-25 08:40:07 -06:00
Michael Hadley
4c34d09955 Optional snapToFloor parameter added to WorldToTile methods 2017-11-25 07:08:06 -06:00
Michael Hadley
7a90d55dd5 Fix: WorldXY now passes recalculateFaces to TileXY methods 2017-11-25 07:06:14 -06:00
Michael Hadley
7844927256 Image layers added to Tilemap 2017-11-24 09:15:02 -06:00
Michael Hadley
0d02f7d941 Extend Tiled importer to handle offsetx and offsety for the various layers 2017-11-24 08:59:36 -06:00
Michael Hadley
d3aa842bfe Adding collision prop to Tilemap 2017-11-24 08:23:40 -06:00
Michael Hadley
0e73bae5bc Extend Tileset to have methods for accessing properties and data per tile 2017-11-24 08:23:22 -06:00
Michael Hadley
805c0a0125 Break Tiled parser into modular pieces & extended capabilities
New features:
- Parsing text object
- Parsing "tiles" prop of tileset which contains collision & terrain information
2017-11-24 08:22:55 -06:00
Michael Hadley
fa8178f47b Port of ImageCollection from v2 2017-11-24 08:21:09 -06:00
Felipe Alfonso
f1ea070256 Switched inverted rotation transform 2017-11-23 16:02:41 -03:00
Felipe Alfonso
c6d674af8d strokeRect fix 2017-11-23 15:53:15 -03:00
Michael Hadley
0fd6779107 Adding a couple notes about methods that manipulate multiple tiles 2017-11-21 19:19:13 -06:00
Michael Hadley
e19de28932 Tilemap & layers now recalc faces (with a parameter for disabling recalc) 2017-11-21 19:18:34 -06:00
Michael Hadley
bdea565586 Better optimized calc/recalc faces methods for tiles
These eliminate the need for the preventRecalc method from v2. If an individual tile is changed with putTileAt, only the min number of faces will be recalculated (vs all faces being recalculated in v2)
2017-11-21 19:16:46 -06:00
Michael Hadley
dd8bbfa625 Update SetCollision methods to track which indices have been set to collide 2017-11-21 19:13:43 -06:00
Michael Hadley
e3dbf7c2d0 Fixing internal method name typos 2017-11-21 19:07:22 -06:00
Felipe Alfonso
500da5d07f Canvas GeometryMask rendering 2017-11-21 20:21:43 -03:00
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
Richard Davey
5f1c022866 lint fix 2017-11-17 18:29:50 +00:00
Michael Hadley
3266974ea0 Tilemap & layer WorldXY methods: get, has, put, remove 2017-11-17 07:58:33 -06:00
Richard Davey
6ccae5ec49 Particle Manager no longer uses BuildGameObject and instead manages its own addition to the system lists. 2017-11-17 13:30:29 +00:00
Richard Davey
d74018f3d0 Rogue null check borked the creation of emitters when a null frame was specified. 2017-11-17 13:30:07 +00:00
Richard Davey
153d1a113a Fixed factory name. 2017-11-17 13:29:33 +00:00
Richard Davey
f29d94356c eslint tidy 2017-11-17 13:29:23 +00: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
Richard Davey
a60562a634 'add' shouldn't control the update state. 2017-11-16 16:47:13 +00: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
Felipe Alfonso
0b91a9e95d Fix RenderPass render target binding 2017-11-14 14:30:34 -03:00
Richard Davey
97efeff751 Removed the Pool classes and Manager as Group can now take on this role 2017-11-14 16:06:56 +00:00
Richard Davey
ac4f05bc6e Large Group refactor (which will break lots of examples)
Removed all of the Action helpers. It just bulks the class out and you can call them directly with Phaser.Actions anyway. Also added Pool support so you can now easily use a Group as an object pool, with fast recycling, creation, seeding and max sizes.
2017-11-13 23:32:14 +00:00
Felipe Alfonso
812638a966 BitmapMask WebGL Rendering Working 2017-11-13 14:21:34 -03:00
Michael Hadley
a7424fa750 Progress on Tilemap - can now link tileset images and create layers 2017-11-11 10:38:52 -06:00
Richard Davey
beb652a6c8 Merge branch 'master' of https://github.com/photonstorm/phaser 2017-11-11 03:52:26 +00:00
Richard Davey
ee9e6ef690 Particles with an alpha of zero are no longer rendered 2017-11-11 03:51:54 +00:00
Richard Davey
795a2fa2ed Added getCenter to the Bounds component 2017-11-11 03:51:28 +00: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
671dfcd569 Groups can now pass a config as the first argument.
They also have 2 new callbacks: createCallback and removeCallback.
2017-11-09 03:59:56 +00:00
Felipe Alfonso
a1957b9c6e BitmapMask rendering progress. Still missing blend mode support specifically for it to work with particles 2017-11-08 15:14:14 -03:00
Richard Davey
b37c588e72 Merge branch 'master' of https://github.com/photonstorm/phaser 2017-11-08 03:52:03 +00:00
Richard Davey
488069b098 Fixed Container proxy 2017-11-08 03:52:00 +00:00
Felipe Alfonso
f968913c79 BitmapMask rendering progress 2017-11-07 17:37:16 -03:00
Richard Davey
c5ad6e6435 Merge branch 'master' of https://github.com/photonstorm/phaser 2017-11-07 01:32:55 +00:00
Richard Davey
e48273208f Fixed update origin name change. 2017-11-07 01:32:53 +00:00
Felipe Alfonso
85daa827aa Bitmap and Geometry Masking progress 2017-11-06 19:12:19 -03: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
Richard Davey
954e7ef025
Merge pull request #3086 from Twilrom/master
Some bug fixes
2017-11-03 13:22:38 +00:00
Jower
05a06b28c0 Fix incorrect and unnecessary uses of closePath 2017-11-03 13:45:55 +01:00
Richard Davey
5d8b22c460 Removed un-needed divide by zero check and renamed updateOrigin to updateDisplayOrigin to better reflect what it does 2017-11-03 10:25:25 +00:00
Richard Davey
e395ac628f Container class tests. 2017-11-02 17:04:10 +00:00
Richard Davey
870b2a94fc eslint fixes 2017-11-02 17:04:02 +00:00
Richard Davey
cb29497b69 Swapped displayOrigin setters. Fix #3084. 2017-11-02 15:50:31 +00:00
Richard Davey
cae8e55558 getBounds now works regardless of scale or origin. Fix #3082 2017-11-02 00:30:04 +00:00
Richard Davey
6bfe450a4f Added getTopLeft, getTopRight, getBottomLeft and getBottomRight to GetBounds component 2017-11-01 23:56:36 +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
959a92069a Fix #3077 2017-11-01 16:21:30 +00:00
Richard Davey
cf6b6eb418 EdgeZone has new updateSource and changeSource methods and seamless argument 2017-11-01 13:09:48 +00:00
Richard Davey
77937f73c7 RandomZone uses a local vec2 now which allows it to work properly with Curves and Paths 2017-11-01 13:09:30 +00:00
Richard Davey
ebca441d39 emitOnly with custom function now sets the correct one. 2017-10-30 17:04:03 +00:00
Richard Davey
3e3ff7d810 Massively refactored how the constructor is structured. Everything now handled in fromJSON or the setters. 2017-10-30 02:23:08 +00:00
Richard Davey
0a07ea91f8 Added loadConfig and toJSON 2017-10-30 02:22:21 +00:00
Richard Davey
7ea3fedd93 Added support for onEnter and onLeave Death Zones for Particles 2017-10-29 21:46:41 +00:00
Richard Davey
5616af917c Added MoveTo support 2017-10-27 21:19:30 +01:00
Richard Davey
48b0c6c3ea Removed old files 2017-10-27 21:19:21 +01:00
Richard Davey
12a92330e2 Added ability for particle frames to be either random or cycled, with quantity option 2017-10-27 14:51:52 +01:00
Richard Davey
6e95285acb Added delay support 2017-10-27 12:31:37 +01:00
Richard Davey
b1c96773cc Fixed EdgeZone gaps and added yoyo support. Updated emitter config. 2017-10-27 11:43:55 +01:00
Richard Davey
f85ae5d02b Finished the new Zones. 2017-10-26 17:02:34 +01:00
Richard Davey
114ba2393c Start of new Zone feature 2017-10-25 16:05:59 +01:00
Richard Davey
f2f64e12e7 Particle Manager has new processors and gravity well support 2017-10-25 16:05:48 +01:00
Richard Davey
a6578562f2 Emitter sends the processors to the particles 2017-10-25 16:05:35 +01:00
Richard Davey
80374dd8d5 Particles are now passed through optional extra processors 2017-10-25 16:05:22 +01:00
Richard Davey
fcaf4700aa New GravityWell feature for the particle system 2017-10-25 16:05:04 +01:00
Richard Davey
8ab00112bf Added support for drawing ellipses and arrays of points 2017-10-25 16:04:36 +01:00
Richard Davey
b909f70243 Added bounds and bounce support and fixed velocity math 2017-10-25 02:25:06 +01:00
Richard Davey
916482b2b4 Removed old file. Added ne velocity calculation. Preparing for accel / bounce. 2017-10-24 16:04:05 +01:00
Richard Davey
2ed87f5f9e Safety nets on property accessors. 2017-10-24 03:31:54 +01:00
Richard Davey
afc73e432b Moved ops to EmitterOp class and fixed loads of issues and added back in all the setters 2017-10-24 03:02:03 +01:00
Richard Davey
816b228cc5 Loads of little fixes all across the emitter classes. 2017-10-23 17:11:13 +01:00
Richard Davey
80a652e071 Moving to a value ops system for emitters, like the TweenBuilder 2017-10-21 05:05:51 +01:00
Richard Davey
c8b2c2bbb9 Support for randomScale, alpha and angle. Also renamed angle to emitterAngle. 2017-10-20 18:49:45 +01:00
Richard Davey
0d4b36f368 Now render from the correct list array. 2017-10-20 14:14:37 +01:00
Richard Davey
93665ff80a Emitter Manager now uses a list to allow for emitter sequencing. Added missing depth component. Added ability to emit across all emitters from a given coordinate. 2017-10-20 14:14:22 +01:00
Richard Davey
6180feea8e Emitter follower now has offset and visibility tracking. 2017-10-20 14:13:48 +01:00
Richard Davey
892319bdb5 Removed import 2017-10-20 14:13:25 +01:00
Richard Davey
66b7e655e9 The blend mode can be set by a string now as well as a number (sprite.blendMode = 'ADD'). 2017-10-20 14:12:58 +01:00
Richard Davey
fa620e8b5b Split out the Depth setters to their own component. 2017-10-20 14:12:25 +01:00
Richard Davey
77b335c9f7 Added emitter follow support 2017-10-20 03:48:42 +01:00
Richard Davey
aad5150990 Emitters can now be created from config objects 2017-10-20 03:20:39 +01:00
Richard Davey
cb8b74e1c7 Scale, rotation, alpha and all eases back in. 2017-10-20 01:49:03 +01:00
Richard Davey
956d59f99d Emitter.setFrame now works with single or multiple frames. 2017-10-20 00:54:47 +01:00
Richard Davey
c268d44962 Renderer now renders the entire manager, saving a flush after each emitter. 2017-10-20 00:54:28 +01:00
Richard Davey
c65c247393 Preparing new frames getter. 2017-10-18 15:18:42 +01:00
Richard Davey
d7bd14ba2b Working through some velocity tests 2017-10-18 02:26:15 +01:00
Richard Davey
4c6183931c Working through updating the emitter and particle classes to use the new MinMax format 2017-10-17 21:32:45 +01:00
Richard Davey
d279e77910 Moving to new folder 2017-10-17 04:19:42 +01:00
Richard Davey
d49d7b10c2 Particle Emitter Manager looks after all emitters bound to it 2017-10-17 04:19:29 +01:00
Richard Davey
4ac80bde34 New Particle Manager renderer functions 2017-10-17 04:19:03 +01:00
Richard Davey
e633e9d407 Particle Emitter has its own blend mode, render target and visibility.
The emitter also now looks after its own particles and is a child of a Particle Manager.
2017-10-17 04:16:52 +01:00
Richard Davey
44b076fab8 Particle now has a frame component 2017-10-17 04:16:08 +01:00
Richard Davey
c7d08a3652 Moved to the Particles folder 2017-10-17 04:15:53 +01:00
Richard Davey
90e6637be3 Particle Renderers now bail out early if emitter is empty 2017-10-16 22:16:13 +01:00
Richard Davey
ed4cc550e8 JSDoc blocks added. 2017-10-13 11:56:39 +01:00
Richard Davey
c6d8423338 Renaming folder to match namespace. 2017-10-12 15:14:34 +01:00
Richard Davey
7b46b2a3a9 Added missing returns 2017-10-12 01:32:08 +01:00
Richard Davey
8cf60b4c3e Tidying-up the namespace. 2017-10-11 17:06:13 +01:00
Richard Davey
8e0c4ad6d8 Fixed updateOrigin method.
fix #3068
2017-10-11 12:05:09 +01:00
Richard Davey
fa85f43d2e displayOriginX and displayOriginY are now getters / setters that will protect the actual values 2017-10-08 23:15:56 +01:00
Richard Davey
583a6459d3 setDisplayOrigin divide by zero fix #3066 2017-10-08 22:47:33 +01:00