Commit Graph

15 Commits

Author SHA1 Message Date
Arthur Pacaud 054e48227c Make object and behavior registering more explicit (#1379) 2020-01-17 22:49:24 +00:00
Florian Rival 23987f63c7 Change sprites flipping to use the center point as center for flipping
As flipping can be considered as a way to "rotate" things, it makes sense to have it used as a center for flipping too.i
This is useful for objects that are moving and can be flipped according to if they are going left or right: they can now
be rotated and flipped "properly" (properly means that the center will stay at the same position when flipped/rotated)

This means that the center point won't move when the sprite is rotated or flipped.
The origin is still used as the point not moving in case of scaling. (this make sense because scaling is about the size, and origin about positioning)
This remove some calculations in the renderers, but add others in getDrawableX/Y and getCenterX/Y in case of flipping.
2019-10-26 11:04:23 +01:00
Florian Rival aa7a4a4ff3 Rename onOwnerRemovedFromScene to onDestroy and fix onCreated/onDestroy calls
* Rename onOwnerRemovedFromScene to onDestroy (because it can be now called when a scene is destroyed)
* Fix it being not called when a scene is destroyed (so behavior don't get a chance to clean up what they have created)
* Fix onCreated being called before the object is fully initialized (for custom behaviors or behaviors relying on an object type)
2019-07-28 17:43:50 +01:00
Florian Rival 3161f641d8 Rename ownerRemovedFromScene to onOwnerRemovedFromScene 2019-05-06 23:08:41 +01:00
Florian Rival fb849be246 Fix AABB computation for rotate objects
AABB was not properly computed for rotated objects or objects
with a non default center/origin. This could create issues while checking
collisions and for behaviors/logic relying on spatial hashing (platformer,
pathfinding).

* Add benchmark to compare the speed of the implementation for non rotated object
(simple/faster) and for rotated objects (always exact but 12-15% slower).
* Add a method to render AABB of objects to ease debugging.
* Also add a test game.
* Add tests for AABB
* Add tests for getHitboxes for gdjs.SpriteRuntimeObject
2018-10-28 06:41:09 -07:00
Florian Rival 3be5d85733 Update GDJS docs to use JSDoc 2018-07-04 22:26:02 +01:00
Florian Rival 5281cd54cc Replace HSHG in platformruntimebehavior.js by RBush
TODO: Check if RBush create/destroy a lot of temporary JS objects and arrays
and try to reduce this.
2016-12-31 18:38:45 +01:00
Florian Rival 7fe4a5c5ff Add unit test for platform ledge grabbing for the JS engine 2016-05-23 23:50:31 +02:00
Florian Rival b620737b18 Rework platform ledge grabbing mechanism 2016-05-16 22:31:33 +02:00
Florian Rival 667d0a1f4a Add options to allow ledged grab on platform/platformer behaviors + test game 2016-05-15 17:36:24 +02:00
Florian Rival c88f7e53c0 Rework PlatformBehavior to avoid creating temporary objects. Remove dead code in HSHG and avoid temp objects/arrays 2016-04-27 23:03:46 +02:00
Florian Rival e444e80493 Update copyrights year 2016-01-14 19:46:56 +01:00
Florian Rival 19350b3061 Fix error when deactivating a behavior from an object that was just created 2015-09-06 18:38:30 +02:00
Florian Rival 4b3b5a9bbe Fix 'an behavior' and wording 2015-08-18 18:36:52 +02:00
Florian Rival 428e72914d [WIP] Rename Automatism to Behavior 2015-08-17 23:52:59 +02:00