excalibur 0.25.2 → 0.25.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -2
- package/build/dist/Actions/Action/Blink.js +51 -0
- package/build/dist/Actions/Action/Blink.js.map +1 -0
- package/build/dist/Actions/Action/CallMethod.js +21 -0
- package/build/dist/Actions/Action/CallMethod.js.map +1 -0
- package/build/dist/Actions/Action/Delay.js +25 -0
- package/build/dist/Actions/Action/Delay.js.map +1 -0
- package/build/dist/Actions/Action/Die.js +22 -0
- package/build/dist/Actions/Action/Die.js.map +1 -0
- package/build/dist/Actions/Action/EaseTo.js +69 -0
- package/build/dist/Actions/Action/EaseTo.js.map +1 -0
- package/build/dist/Actions/Action/Fade.js +46 -0
- package/build/dist/Actions/Action/Fade.js.map +1 -0
- package/build/dist/Actions/Action/Follow.js +55 -0
- package/build/dist/Actions/Action/Follow.js.map +1 -0
- package/build/dist/Actions/Action/Meet.js +52 -0
- package/build/dist/Actions/Action/Meet.js.map +1 -0
- package/build/dist/Actions/Action/MoveBy.js +47 -0
- package/build/dist/Actions/Action/MoveBy.js.map +1 -0
- package/build/dist/Actions/Action/MoveTo.js +40 -0
- package/build/dist/Actions/Action/MoveTo.js.map +1 -0
- package/build/dist/Actions/Action/Repeat.js +31 -0
- package/build/dist/Actions/Action/Repeat.js.map +1 -0
- package/build/dist/Actions/Action/RepeatForever.js +37 -0
- package/build/dist/Actions/Action/RepeatForever.js.map +1 -0
- package/build/dist/Actions/Action/RotateBy.js +91 -0
- package/build/dist/Actions/Action/RotateBy.js.map +1 -0
- package/build/dist/Actions/Action/RotateTo.js +90 -0
- package/build/dist/Actions/Action/RotateTo.js.map +1 -0
- package/build/dist/Actions/Action/ScaleBy.js +45 -0
- package/build/dist/Actions/Action/ScaleBy.js.map +1 -0
- package/build/dist/Actions/Action/ScaleTo.js +56 -0
- package/build/dist/Actions/Action/ScaleTo.js.map +1 -0
- package/build/dist/Actions/Action.js +2 -0
- package/build/dist/Actions/Action.js.map +1 -0
- package/build/dist/Actions/ActionContext.js +305 -0
- package/build/dist/Actions/ActionContext.js.map +1 -0
- package/build/dist/Actions/ActionQueue.js +87 -0
- package/build/dist/Actions/ActionQueue.js.map +1 -0
- package/build/dist/Actions/Actionable.js +2 -0
- package/build/dist/Actions/Actionable.js.map +1 -0
- package/build/dist/Actions/ActionsComponent.js +198 -0
- package/build/dist/Actions/ActionsComponent.js.map +1 -0
- package/build/dist/Actions/ActionsSystem.js +18 -0
- package/build/dist/Actions/ActionsSystem.js.map +1 -0
- package/build/dist/Actions/Index.js +22 -0
- package/build/dist/Actions/Index.js.map +1 -0
- package/build/dist/Actions/RotationType.js +27 -0
- package/build/dist/Actions/RotationType.js.map +1 -0
- package/build/dist/Actor.js +831 -0
- package/build/dist/Actor.js.map +1 -0
- package/build/dist/Camera.js +663 -0
- package/build/dist/Camera.js.map +1 -0
- package/build/dist/Class.js +48 -0
- package/build/dist/Class.js.map +1 -0
- package/build/dist/Collision/BodyComponent.js +351 -0
- package/build/dist/Collision/BodyComponent.js.map +1 -0
- package/build/dist/Collision/BoundingBox.js +361 -0
- package/build/dist/Collision/BoundingBox.js.map +1 -0
- package/build/dist/Collision/ColliderComponent.js +198 -0
- package/build/dist/Collision/ColliderComponent.js.map +1 -0
- package/build/dist/Collision/Colliders/CircleCollider.js +264 -0
- package/build/dist/Collision/Colliders/CircleCollider.js.map +1 -0
- package/build/dist/Collision/Colliders/ClosestLineJumpTable.js +211 -0
- package/build/dist/Collision/Colliders/ClosestLineJumpTable.js.map +1 -0
- package/build/dist/Collision/Colliders/Collider.js +26 -0
- package/build/dist/Collision/Colliders/Collider.js.map +1 -0
- package/build/dist/Collision/Colliders/CollisionJumpTable.js +301 -0
- package/build/dist/Collision/Colliders/CollisionJumpTable.js.map +1 -0
- package/build/dist/Collision/Colliders/CompositeCollider.js +232 -0
- package/build/dist/Collision/Colliders/CompositeCollider.js.map +1 -0
- package/build/dist/Collision/Colliders/EdgeCollider.js +253 -0
- package/build/dist/Collision/Colliders/EdgeCollider.js.map +1 -0
- package/build/dist/Collision/Colliders/PolygonCollider.js +389 -0
- package/build/dist/Collision/Colliders/PolygonCollider.js.map +1 -0
- package/build/dist/Collision/Colliders/SeparatingAxis.js +67 -0
- package/build/dist/Collision/Colliders/SeparatingAxis.js.map +1 -0
- package/build/dist/Collision/Colliders/Shape.js +102 -0
- package/build/dist/Collision/Colliders/Shape.js.map +1 -0
- package/build/dist/Collision/CollisionSystem.js +116 -0
- package/build/dist/Collision/CollisionSystem.js.map +1 -0
- package/build/dist/Collision/CollisionType.js +33 -0
- package/build/dist/Collision/CollisionType.js.map +1 -0
- package/build/dist/Collision/Detection/CollisionContact.js +46 -0
- package/build/dist/Collision/Detection/CollisionContact.js.map +1 -0
- package/build/dist/Collision/Detection/CollisionProcessor.js +2 -0
- package/build/dist/Collision/Detection/CollisionProcessor.js.map +1 -0
- package/build/dist/Collision/Detection/DynamicTree.js +442 -0
- package/build/dist/Collision/Detection/DynamicTree.js.map +1 -0
- package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js +211 -0
- package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js.map +1 -0
- package/build/dist/Collision/Detection/Pair.js +92 -0
- package/build/dist/Collision/Detection/Pair.js.map +1 -0
- package/build/dist/Collision/Group/CollisionGroup.js +114 -0
- package/build/dist/Collision/Group/CollisionGroup.js.map +1 -0
- package/build/dist/Collision/Group/CollisionGroupManager.js +52 -0
- package/build/dist/Collision/Group/CollisionGroupManager.js.map +1 -0
- package/build/dist/Collision/Index.js +29 -0
- package/build/dist/Collision/Index.js.map +1 -0
- package/build/dist/Collision/Integrator.js +11 -0
- package/build/dist/Collision/Integrator.js.map +1 -0
- package/build/dist/Collision/MotionSystem.js +42 -0
- package/build/dist/Collision/MotionSystem.js.map +1 -0
- package/build/dist/Collision/Physics.js +163 -0
- package/build/dist/Collision/Physics.js.map +1 -0
- package/build/dist/Collision/Side.js +51 -0
- package/build/dist/Collision/Side.js.map +1 -0
- package/build/dist/Collision/Solver/ArcadeSolver.js +101 -0
- package/build/dist/Collision/Solver/ArcadeSolver.js.map +1 -0
- package/build/dist/Collision/Solver/ContactConstraintPoint.js +83 -0
- package/build/dist/Collision/Solver/ContactConstraintPoint.js.map +1 -0
- package/build/dist/Collision/Solver/RealisticSolver.js +248 -0
- package/build/dist/Collision/Solver/RealisticSolver.js.map +1 -0
- package/build/dist/Collision/Solver/Solver.js +37 -0
- package/build/dist/Collision/Solver/Solver.js.map +1 -0
- package/build/dist/Color.js +461 -0
- package/build/dist/Color.js.map +1 -0
- package/build/dist/Configurable.js +32 -0
- package/build/dist/Configurable.js.map +1 -0
- package/build/dist/Debug/Debug.js +375 -0
- package/build/dist/Debug/Debug.js.map +1 -0
- package/build/dist/Debug/DebugFlags.js +40 -0
- package/build/dist/Debug/DebugFlags.js.map +1 -0
- package/build/dist/Debug/DebugSystem.js +251 -0
- package/build/dist/Debug/DebugSystem.js.map +1 -0
- package/build/dist/Debug/index.js +4 -0
- package/build/dist/Debug/index.js.map +1 -0
- package/build/dist/Deprecated.js +2 -0
- package/build/dist/Deprecated.js.map +1 -0
- package/build/dist/Drawing/Animation.js +294 -0
- package/build/dist/Drawing/Animation.js.map +1 -0
- package/build/dist/Drawing/CanvasDrawComponent.js +16 -0
- package/build/dist/Drawing/CanvasDrawComponent.js.map +1 -0
- package/build/dist/Drawing/CanvasDrawingSystem.js +95 -0
- package/build/dist/Drawing/CanvasDrawingSystem.js.map +1 -0
- package/build/dist/Drawing/Index.js +10 -0
- package/build/dist/Drawing/Index.js.map +1 -0
- package/build/dist/Drawing/Polygon.js +139 -0
- package/build/dist/Drawing/Polygon.js.map +1 -0
- package/build/dist/Drawing/Sprite.js +355 -0
- package/build/dist/Drawing/Sprite.js.map +1 -0
- package/build/dist/Drawing/SpriteEffects.js +246 -0
- package/build/dist/Drawing/SpriteEffects.js.map +1 -0
- package/build/dist/Drawing/SpriteSheet.js +413 -0
- package/build/dist/Drawing/SpriteSheet.js.map +1 -0
- package/build/dist/Drawing/Texture.js +69 -0
- package/build/dist/Drawing/Texture.js.map +1 -0
- package/build/dist/Engine.d.ts +4 -1
- package/build/dist/Engine.js +985 -0
- package/build/dist/Engine.js.map +1 -0
- package/build/dist/EntityComponentSystem/Component.js +65 -0
- package/build/dist/EntityComponentSystem/Component.js.map +1 -0
- package/build/dist/EntityComponentSystem/Components/MotionComponent.js +33 -0
- package/build/dist/EntityComponentSystem/Components/MotionComponent.js.map +1 -0
- package/build/dist/EntityComponentSystem/Components/TransformComponent.js +249 -0
- package/build/dist/EntityComponentSystem/Components/TransformComponent.js.map +1 -0
- package/build/dist/EntityComponentSystem/Entity.js +452 -0
- package/build/dist/EntityComponentSystem/Entity.js.map +1 -0
- package/build/dist/EntityComponentSystem/EntityManager.js +128 -0
- package/build/dist/EntityComponentSystem/EntityManager.js.map +1 -0
- package/build/dist/EntityComponentSystem/Query.js +91 -0
- package/build/dist/EntityComponentSystem/Query.js.map +1 -0
- package/build/dist/EntityComponentSystem/QueryManager.js +90 -0
- package/build/dist/EntityComponentSystem/QueryManager.js.map +1 -0
- package/build/dist/EntityComponentSystem/System.js +76 -0
- package/build/dist/EntityComponentSystem/System.js.map +1 -0
- package/build/dist/EntityComponentSystem/SystemManager.js +102 -0
- package/build/dist/EntityComponentSystem/SystemManager.js.map +1 -0
- package/build/dist/EntityComponentSystem/Util.js +5 -0
- package/build/dist/EntityComponentSystem/Util.js.map +1 -0
- package/build/dist/EntityComponentSystem/World.js +55 -0
- package/build/dist/EntityComponentSystem/World.js.map +1 -0
- package/build/dist/EntityComponentSystem/index.js +11 -0
- package/build/dist/EntityComponentSystem/index.js.map +1 -0
- package/build/dist/EventDispatcher.js +114 -0
- package/build/dist/EventDispatcher.js.map +1 -0
- package/build/dist/Events/ExEvent.js +12 -0
- package/build/dist/Events/ExEvent.js.map +1 -0
- package/build/dist/Events/MediaEvents.js +75 -0
- package/build/dist/Events/MediaEvents.js.map +1 -0
- package/build/dist/Events/PointerEvents.js +52 -0
- package/build/dist/Events/PointerEvents.js.map +1 -0
- package/build/dist/Events.js +497 -0
- package/build/dist/Events.js.map +1 -0
- package/build/dist/Flags.js +90 -0
- package/build/dist/Flags.js.map +1 -0
- package/build/dist/Graphics/Animation.js +310 -0
- package/build/dist/Graphics/Animation.js.map +1 -0
- package/build/dist/Graphics/Canvas.js +38 -0
- package/build/dist/Graphics/Canvas.js.map +1 -0
- package/build/dist/Graphics/Circle.js +47 -0
- package/build/dist/Graphics/Circle.js.map +1 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js +2 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js.map +1 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js +207 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js.map +1 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js +331 -0
- package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js.map +1 -0
- package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js +160 -0
- package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js.map +1 -0
- package/build/dist/Graphics/Context/debug-text.js +47 -0
- package/build/dist/Graphics/Context/debug-text.js.map +1 -0
- package/build/dist/Graphics/Context/image-renderer/image-renderer.js +209 -0
- package/build/dist/Graphics/Context/image-renderer/image-renderer.js.map +1 -0
- package/build/dist/Graphics/Context/line-renderer/line-renderer.js +87 -0
- package/build/dist/Graphics/Context/line-renderer/line-renderer.js.map +1 -0
- package/build/dist/Graphics/Context/point-renderer/point-renderer.js +82 -0
- package/build/dist/Graphics/Context/point-renderer/point-renderer.js.map +1 -0
- package/build/dist/Graphics/Context/quad-index-buffer.js +69 -0
- package/build/dist/Graphics/Context/quad-index-buffer.js.map +1 -0
- package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js +272 -0
- package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js.map +1 -0
- package/build/dist/Graphics/Context/render-source.js +16 -0
- package/build/dist/Graphics/Context/render-source.js.map +1 -0
- package/build/dist/Graphics/Context/render-target.js +65 -0
- package/build/dist/Graphics/Context/render-target.js.map +1 -0
- package/build/dist/Graphics/Context/renderer.js +2 -0
- package/build/dist/Graphics/Context/renderer.js.map +1 -0
- package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js +53 -0
- package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js.map +1 -0
- package/build/dist/Graphics/Context/shader.js +236 -0
- package/build/dist/Graphics/Context/shader.js.map +1 -0
- package/build/dist/Graphics/Context/state-stack.js +27 -0
- package/build/dist/Graphics/Context/state-stack.js.map +1 -0
- package/build/dist/Graphics/Context/texture-loader.d.ts +8 -0
- package/build/dist/Graphics/Context/texture-loader.js +121 -0
- package/build/dist/Graphics/Context/texture-loader.js.map +1 -0
- package/build/dist/Graphics/Context/transform-stack.js +30 -0
- package/build/dist/Graphics/Context/transform-stack.js.map +1 -0
- package/build/dist/Graphics/Context/vertex-buffer.js +45 -0
- package/build/dist/Graphics/Context/vertex-buffer.js.map +1 -0
- package/build/dist/Graphics/Context/vertex-layout.js +93 -0
- package/build/dist/Graphics/Context/vertex-layout.js.map +1 -0
- package/build/dist/Graphics/Context/webgl-adapter.js +19 -0
- package/build/dist/Graphics/Context/webgl-adapter.js.map +1 -0
- package/build/dist/Graphics/Context/webgl-util.js +105 -0
- package/build/dist/Graphics/Context/webgl-util.js.map +1 -0
- package/build/dist/Graphics/DebugGraphicsComponent.js +15 -0
- package/build/dist/Graphics/DebugGraphicsComponent.js.map +1 -0
- package/build/dist/Graphics/Filtering.js +17 -0
- package/build/dist/Graphics/Filtering.js.map +1 -0
- package/build/dist/Graphics/Font.js +293 -0
- package/build/dist/Graphics/Font.js.map +1 -0
- package/build/dist/Graphics/FontCommon.js +109 -0
- package/build/dist/Graphics/FontCommon.js.map +1 -0
- package/build/dist/Graphics/Graphic.js +200 -0
- package/build/dist/Graphics/Graphic.js.map +1 -0
- package/build/dist/Graphics/GraphicsComponent.js +290 -0
- package/build/dist/Graphics/GraphicsComponent.js.map +1 -0
- package/build/dist/Graphics/GraphicsDiagnostics.js +9 -0
- package/build/dist/Graphics/GraphicsDiagnostics.js.map +1 -0
- package/build/dist/Graphics/GraphicsGroup.js +69 -0
- package/build/dist/Graphics/GraphicsGroup.js.map +1 -0
- package/build/dist/Graphics/GraphicsSystem.js +153 -0
- package/build/dist/Graphics/GraphicsSystem.js.map +1 -0
- package/build/dist/Graphics/ImageSource.js +116 -0
- package/build/dist/Graphics/ImageSource.js.map +1 -0
- package/build/dist/Graphics/Polygon.js +59 -0
- package/build/dist/Graphics/Polygon.js.map +1 -0
- package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js +7 -0
- package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js.map +1 -0
- package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js +52 -0
- package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js.map +1 -0
- package/build/dist/Graphics/PostProcessor/PostProcessor.js +2 -0
- package/build/dist/Graphics/PostProcessor/PostProcessor.js.map +1 -0
- package/build/dist/Graphics/PostProcessor/ScreenShader.js +56 -0
- package/build/dist/Graphics/PostProcessor/ScreenShader.js.map +1 -0
- package/build/dist/Graphics/Raster.js +207 -0
- package/build/dist/Graphics/Raster.js.map +1 -0
- package/build/dist/Graphics/Rectangle.js +29 -0
- package/build/dist/Graphics/Rectangle.js.map +1 -0
- package/build/dist/Graphics/Sprite.js +103 -0
- package/build/dist/Graphics/Sprite.js.map +1 -0
- package/build/dist/Graphics/SpriteFont.js +120 -0
- package/build/dist/Graphics/SpriteFont.js.map +1 -0
- package/build/dist/Graphics/SpriteSheet.js +115 -0
- package/build/dist/Graphics/SpriteSheet.js.map +1 -0
- package/build/dist/Graphics/Text.js +94 -0
- package/build/dist/Graphics/Text.js.map +1 -0
- package/build/dist/Graphics/index.js +42 -0
- package/build/dist/Graphics/index.js.map +1 -0
- package/build/dist/Id.js +8 -0
- package/build/dist/Id.js.map +1 -0
- package/build/dist/Input/CapturePointerConfig.js +5 -0
- package/build/dist/Input/CapturePointerConfig.js.map +1 -0
- package/build/dist/Input/EngineInput.js +2 -0
- package/build/dist/Input/EngineInput.js.map +1 -0
- package/build/dist/Input/Gamepad.js +358 -0
- package/build/dist/Input/Gamepad.js.map +1 -0
- package/build/dist/Input/Index.js +22 -0
- package/build/dist/Input/Index.js.map +1 -0
- package/build/dist/Input/Keyboard.js +267 -0
- package/build/dist/Input/Keyboard.js.map +1 -0
- package/build/dist/Input/NativePointerButton.js +12 -0
- package/build/dist/Input/NativePointerButton.js.map +1 -0
- package/build/dist/Input/PointerAbstraction.js +41 -0
- package/build/dist/Input/PointerAbstraction.js.map +1 -0
- package/build/dist/Input/PointerButton.js +12 -0
- package/build/dist/Input/PointerButton.js.map +1 -0
- package/build/dist/Input/PointerComponent.js +28 -0
- package/build/dist/Input/PointerComponent.js.map +1 -0
- package/build/dist/Input/PointerEvent.js +25 -0
- package/build/dist/Input/PointerEvent.js.map +1 -0
- package/build/dist/Input/PointerEventReceiver.js +414 -0
- package/build/dist/Input/PointerEventReceiver.js.map +1 -0
- package/build/dist/Input/PointerScope.js +16 -0
- package/build/dist/Input/PointerScope.js.map +1 -0
- package/build/dist/Input/PointerSystem.js +217 -0
- package/build/dist/Input/PointerSystem.js.map +1 -0
- package/build/dist/Input/PointerType.js +11 -0
- package/build/dist/Input/PointerType.js.map +1 -0
- package/build/dist/Input/WheelDeltaMode.js +7 -0
- package/build/dist/Input/WheelDeltaMode.js.map +1 -0
- package/build/dist/Input/WheelEvent.js +21 -0
- package/build/dist/Input/WheelEvent.js.map +1 -0
- package/build/dist/Interfaces/Audio.js +2 -0
- package/build/dist/Interfaces/Audio.js.map +1 -0
- package/build/dist/Interfaces/AudioImplementation.js +11 -0
- package/build/dist/Interfaces/AudioImplementation.js.map +1 -0
- package/build/dist/Interfaces/Clonable.js +2 -0
- package/build/dist/Interfaces/Clonable.js.map +1 -0
- package/build/dist/Interfaces/Drawable.js +2 -0
- package/build/dist/Interfaces/Drawable.js.map +1 -0
- package/build/dist/Interfaces/Evented.js +2 -0
- package/build/dist/Interfaces/Evented.js.map +1 -0
- package/build/dist/Interfaces/Index.js +10 -0
- package/build/dist/Interfaces/Index.js.map +1 -0
- package/build/dist/Interfaces/LifecycleEvents.js +51 -0
- package/build/dist/Interfaces/LifecycleEvents.js.map +1 -0
- package/build/dist/Interfaces/Loadable.js +2 -0
- package/build/dist/Interfaces/Loadable.js.map +1 -0
- package/build/dist/Interfaces/PointerEventHandlers.js +2 -0
- package/build/dist/Interfaces/PointerEventHandlers.js.map +1 -0
- package/build/dist/Interfaces/Trait.js +2 -0
- package/build/dist/Interfaces/Trait.js.map +1 -0
- package/build/dist/Label.js +273 -0
- package/build/dist/Label.js.map +1 -0
- package/build/dist/Loader.js +367 -0
- package/build/dist/Loader.js.map +1 -0
- package/build/dist/Math/Index.js +10 -0
- package/build/dist/Math/Index.js.map +1 -0
- package/build/dist/Math/Random.js +239 -0
- package/build/dist/Math/Random.js.map +1 -0
- package/build/dist/Math/global-coordinates.js +30 -0
- package/build/dist/Math/global-coordinates.js.map +1 -0
- package/build/dist/Math/line.js +194 -0
- package/build/dist/Math/line.js.map +1 -0
- package/build/dist/Math/matrix.js +446 -0
- package/build/dist/Math/matrix.js.map +1 -0
- package/build/dist/Math/projection.js +24 -0
- package/build/dist/Math/projection.js.map +1 -0
- package/build/dist/Math/ray.js +52 -0
- package/build/dist/Math/ray.js.map +1 -0
- package/build/dist/Math/util.js +82 -0
- package/build/dist/Math/util.js.map +1 -0
- package/build/dist/Math/vector-view.js +25 -0
- package/build/dist/Math/vector-view.js.map +1 -0
- package/build/dist/Math/vector.js +326 -0
- package/build/dist/Math/vector.js.map +1 -0
- package/build/dist/Particles.js +449 -0
- package/build/dist/Particles.js.map +1 -0
- package/build/dist/Polyfill.js +56 -0
- package/build/dist/Polyfill.js.map +1 -0
- package/build/dist/Promises.js +205 -0
- package/build/dist/Promises.js.map +1 -0
- package/build/dist/Resources/Gif.js +479 -0
- package/build/dist/Resources/Gif.js.map +1 -0
- package/build/dist/Resources/Index.js +4 -0
- package/build/dist/Resources/Index.js.map +1 -0
- package/build/dist/Resources/Resource.js +74 -0
- package/build/dist/Resources/Resource.js.map +1 -0
- package/build/dist/Resources/Sound/AudioContext.js +16 -0
- package/build/dist/Resources/Sound/AudioContext.js.map +1 -0
- package/build/dist/Resources/Sound/Index.js +4 -0
- package/build/dist/Resources/Sound/Index.js.map +1 -0
- package/build/dist/Resources/Sound/Sound.js +240 -0
- package/build/dist/Resources/Sound/Sound.js.map +1 -0
- package/build/dist/Resources/Sound/WebAudioInstance.js +160 -0
- package/build/dist/Resources/Sound/WebAudioInstance.js.map +1 -0
- package/build/dist/Scene.js +458 -0
- package/build/dist/Scene.js.map +1 -0
- package/build/dist/Screen.js +634 -0
- package/build/dist/Screen.js.map +1 -0
- package/build/dist/ScreenElement.js +29 -0
- package/build/dist/ScreenElement.js.map +1 -0
- package/build/dist/TileMap.js +488 -0
- package/build/dist/TileMap.js.map +1 -0
- package/build/dist/Timer.js +198 -0
- package/build/dist/Timer.js.map +1 -0
- package/build/dist/Traits/Index.js +5 -0
- package/build/dist/Traits/Index.js.map +1 -0
- package/build/dist/Traits/OffscreenCulling.js +35 -0
- package/build/dist/Traits/OffscreenCulling.js.map +1 -0
- package/build/dist/Trigger.js +113 -0
- package/build/dist/Trigger.js.map +1 -0
- package/build/dist/Util/Actors.js +19 -0
- package/build/dist/Util/Actors.js.map +1 -0
- package/build/dist/Util/Browser.js +66 -0
- package/build/dist/Util/Browser.js.map +1 -0
- package/build/dist/Util/Clock.js +219 -0
- package/build/dist/Util/Clock.js.map +1 -0
- package/build/dist/Util/CullingBox.js +104 -0
- package/build/dist/Util/CullingBox.js.map +1 -0
- package/build/dist/Util/Decorators.js +78 -0
- package/build/dist/Util/Decorators.js.map +1 -0
- package/build/dist/Util/Detector.js +167 -0
- package/build/dist/Util/Detector.js.map +1 -0
- package/build/dist/Util/DrawUtil.js +117 -0
- package/build/dist/Util/DrawUtil.js.map +1 -0
- package/build/dist/Util/EasingFunctions.js +118 -0
- package/build/dist/Util/EasingFunctions.js.map +1 -0
- package/build/dist/Util/Fps.js +47 -0
- package/build/dist/Util/Fps.js.map +1 -0
- package/build/dist/Util/Index.js +7 -0
- package/build/dist/Util/Index.js.map +1 -0
- package/build/dist/Util/Log.js +195 -0
- package/build/dist/Util/Log.js.map +1 -0
- package/build/dist/Util/Observable.js +60 -0
- package/build/dist/Util/Observable.js.map +1 -0
- package/build/dist/Util/Pool.js +66 -0
- package/build/dist/Util/Pool.js.map +1 -0
- package/build/dist/Util/SortedList.js +261 -0
- package/build/dist/Util/SortedList.js.map +1 -0
- package/build/dist/Util/Sound.js +22 -0
- package/build/dist/Util/Sound.js.map +1 -0
- package/build/dist/Util/Util.js +294 -0
- package/build/dist/Util/Util.js.map +1 -0
- package/build/dist/Util/Watch.js +67 -0
- package/build/dist/Util/Watch.js.map +1 -0
- package/build/dist/Util/WebAudio.js +62 -0
- package/build/dist/Util/WebAudio.js.map +1 -0
- package/build/dist/excalibur.js +101 -22
- package/build/dist/excalibur.js.map +1 -1
- package/build/dist/excalibur.min.js +1 -1
- package/build/dist/excalibur.min.js.LICENSE.txt +1 -1
- package/build/dist/excalibur.min.js.map +1 -1
- package/build/dist/index.js +74 -0
- package/build/dist/index.js.map +1 -0
- package/build/esm/Engine.d.ts +4 -1
- package/build/esm/Graphics/Context/texture-loader.d.ts +8 -0
- package/build/esm/excalibur.js +101 -22
- package/build/esm/excalibur.js.map +1 -1
- package/build/esm/excalibur.min.js +1 -1
- package/build/esm/excalibur.min.js.LICENSE.txt +1 -1
- package/build/esm/excalibur.min.js.map +1 -1
- package/package.json +23 -22
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export class SeparatingAxis {
|
|
2
|
+
static findPolygonPolygonSeparation(polyA, polyB) {
|
|
3
|
+
let bestSeparation = -Number.MAX_VALUE;
|
|
4
|
+
let bestSide = null;
|
|
5
|
+
let bestAxis = null;
|
|
6
|
+
let bestSideIndex = -1;
|
|
7
|
+
let bestOtherPoint = null;
|
|
8
|
+
const sides = polyA.getSides();
|
|
9
|
+
const localSides = polyA.getLocalSides();
|
|
10
|
+
for (let i = 0; i < sides.length; i++) {
|
|
11
|
+
const side = sides[i];
|
|
12
|
+
const axis = side.normal();
|
|
13
|
+
const vertB = polyB.getFurthestPoint(axis.negate());
|
|
14
|
+
// Separation on side i's axis
|
|
15
|
+
// We are looking for the largest separation between poly A's sides
|
|
16
|
+
const vertSeparation = side.distanceToPoint(vertB, true);
|
|
17
|
+
if (vertSeparation > bestSeparation) {
|
|
18
|
+
bestSeparation = vertSeparation;
|
|
19
|
+
bestSide = side;
|
|
20
|
+
bestAxis = axis;
|
|
21
|
+
bestSideIndex = i;
|
|
22
|
+
bestOtherPoint = vertB;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
collider: polyA,
|
|
27
|
+
separation: bestAxis ? bestSeparation : 99,
|
|
28
|
+
axis: bestAxis,
|
|
29
|
+
side: bestSide,
|
|
30
|
+
localSide: localSides[bestSideIndex],
|
|
31
|
+
sideId: bestSideIndex,
|
|
32
|
+
point: bestOtherPoint,
|
|
33
|
+
localPoint: bestAxis ? polyB.getFurthestLocalPoint(bestAxis.negate()) : null
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
static findCirclePolygonSeparation(circle, polygon) {
|
|
37
|
+
const axes = polygon.axes;
|
|
38
|
+
const pc = polygon.center;
|
|
39
|
+
// Special SAT with circles
|
|
40
|
+
const polyDir = pc.sub(circle.worldPos);
|
|
41
|
+
const closestPointOnPoly = polygon.getFurthestPoint(polyDir.negate());
|
|
42
|
+
axes.push(closestPointOnPoly.sub(circle.worldPos).normalize());
|
|
43
|
+
let minOverlap = Number.MAX_VALUE;
|
|
44
|
+
let minAxis = null;
|
|
45
|
+
let minIndex = -1;
|
|
46
|
+
for (let i = 0; i < axes.length; i++) {
|
|
47
|
+
const proj1 = polygon.project(axes[i]);
|
|
48
|
+
const proj2 = circle.project(axes[i]);
|
|
49
|
+
const overlap = proj1.getOverlap(proj2);
|
|
50
|
+
if (overlap <= 0) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (overlap < minOverlap) {
|
|
55
|
+
minOverlap = overlap;
|
|
56
|
+
minAxis = axes[i];
|
|
57
|
+
minIndex = i;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (minIndex < 0) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return minAxis.normalize().scale(minOverlap);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=SeparatingAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeparatingAxis.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Colliders/SeparatingAxis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { PolygonCollider } from './PolygonCollider';
|
|
2
|
+
import { CircleCollider } from './CircleCollider';
|
|
3
|
+
import { EdgeCollider } from './EdgeCollider';
|
|
4
|
+
import { BoundingBox } from '../BoundingBox';
|
|
5
|
+
import { vec, Vector } from '../../Math/vector';
|
|
6
|
+
import { CompositeCollider } from './CompositeCollider';
|
|
7
|
+
import { Logger } from '../..';
|
|
8
|
+
/**
|
|
9
|
+
* Excalibur helper for defining colliders quickly
|
|
10
|
+
*/
|
|
11
|
+
export class Shape {
|
|
12
|
+
/**
|
|
13
|
+
* Creates a box collider, under the hood defines a [[PolygonCollider]] collider
|
|
14
|
+
* @param width Width of the box
|
|
15
|
+
* @param height Height of the box
|
|
16
|
+
* @param anchor Anchor of the box (default (.5, .5)) which positions the box relative to the center of the collider's position
|
|
17
|
+
* @param offset Optional offset relative to the collider in local coordinates
|
|
18
|
+
*/
|
|
19
|
+
static Box(width, height, anchor = Vector.Half, offset = Vector.Zero) {
|
|
20
|
+
return new PolygonCollider({
|
|
21
|
+
points: new BoundingBox(-width * anchor.x, -height * anchor.y, width - width * anchor.x, height - height * anchor.y).getPoints(),
|
|
22
|
+
offset: offset
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new [[PolygonCollider|arbitrary polygon]] collider
|
|
27
|
+
*
|
|
28
|
+
* PolygonColliders are useful for creating convex polygon shapes
|
|
29
|
+
* @param points Points specified in counter clockwise
|
|
30
|
+
* @param clockwiseWinding Optionally changed the winding of points, by default false meaning counter-clockwise winding.
|
|
31
|
+
* @param offset Optional offset relative to the collider in local coordinates
|
|
32
|
+
*/
|
|
33
|
+
static Polygon(points, clockwiseWinding = false, offset = Vector.Zero) {
|
|
34
|
+
return new PolygonCollider({
|
|
35
|
+
points: points,
|
|
36
|
+
offset: offset,
|
|
37
|
+
clockwiseWinding: clockwiseWinding
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new [[CircleCollider|circle]] collider
|
|
42
|
+
*
|
|
43
|
+
* Circle colliders are useful for balls, or to make collisions more forgiving on sharp edges
|
|
44
|
+
* @param radius Radius of the circle collider
|
|
45
|
+
* @param offset Optional offset relative to the collider in local coordinates
|
|
46
|
+
*/
|
|
47
|
+
static Circle(radius, offset = Vector.Zero) {
|
|
48
|
+
return new CircleCollider({
|
|
49
|
+
radius: radius,
|
|
50
|
+
offset: offset
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new [[EdgeCollider|edge]] collider
|
|
55
|
+
*
|
|
56
|
+
* Edge colliders are useful for floors, walls, and other barriers
|
|
57
|
+
* @param begin Beginning of the edge in local coordinates to the collider
|
|
58
|
+
* @param end Ending of the edge in local coordinates to the collider
|
|
59
|
+
*/
|
|
60
|
+
static Edge(begin, end) {
|
|
61
|
+
return new EdgeCollider({
|
|
62
|
+
begin: begin,
|
|
63
|
+
end: end
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates a new capsule shaped [[CompositeCollider]] using 2 circles and a box
|
|
68
|
+
*
|
|
69
|
+
* Capsule colliders are useful for platformers with incline or jagged floors to have a smooth
|
|
70
|
+
* player experience.
|
|
71
|
+
*
|
|
72
|
+
* @param width
|
|
73
|
+
* @param height
|
|
74
|
+
* @param offset Optional offset
|
|
75
|
+
*/
|
|
76
|
+
static Capsule(width, height, offset = Vector.Zero) {
|
|
77
|
+
const logger = Logger.getInstance();
|
|
78
|
+
if (width === height) {
|
|
79
|
+
logger.warn('A capsule collider with equal width and height is a circle, consider using a ex.Shape.Circle or ex.CircleCollider');
|
|
80
|
+
}
|
|
81
|
+
const vertical = height >= width;
|
|
82
|
+
if (vertical) {
|
|
83
|
+
// height > width, if equal maybe use a circle
|
|
84
|
+
const capsule = new CompositeCollider([
|
|
85
|
+
Shape.Circle(width / 2, vec(0, -height / 2 + width / 2).add(offset)),
|
|
86
|
+
Shape.Box(width, height - width, Vector.Half, offset),
|
|
87
|
+
Shape.Circle(width / 2, vec(0, height / 2 - width / 2).add(offset))
|
|
88
|
+
]);
|
|
89
|
+
return capsule;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// width > height, if equal maybe use a circle
|
|
93
|
+
const capsule = new CompositeCollider([
|
|
94
|
+
Shape.Circle(height / 2, vec(-width / 2 + height / 2, 0).add(offset)),
|
|
95
|
+
Shape.Box(width - height, height, Vector.Half, offset),
|
|
96
|
+
Shape.Circle(height / 2, vec(width / 2 - height / 2, 0).add(offset))
|
|
97
|
+
]);
|
|
98
|
+
return capsule;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=Shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Shape.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Colliders/Shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { isAddedSystemEntity, System, SystemType } from '../EntityComponentSystem/System';
|
|
2
|
+
import { CollisionEndEvent, CollisionStartEvent, ContactEndEvent, ContactStartEvent } from '../Events';
|
|
3
|
+
import { CollisionResolutionStrategy, Physics } from './Physics';
|
|
4
|
+
import { ArcadeSolver } from './Solver/ArcadeSolver';
|
|
5
|
+
import { DynamicTreeCollisionProcessor } from './Detection/DynamicTreeCollisionProcessor';
|
|
6
|
+
import { RealisticSolver } from './Solver/RealisticSolver';
|
|
7
|
+
import { ColliderComponent } from './ColliderComponent';
|
|
8
|
+
import { CompositeCollider } from './Colliders/CompositeCollider';
|
|
9
|
+
export class CollisionSystem extends System {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.types = ['ex.transform', 'ex.motion', 'ex.collider'];
|
|
13
|
+
this.systemType = SystemType.Update;
|
|
14
|
+
this.priority = -1;
|
|
15
|
+
this._realisticSolver = new RealisticSolver();
|
|
16
|
+
this._arcadeSolver = new ArcadeSolver();
|
|
17
|
+
this._processor = new DynamicTreeCollisionProcessor();
|
|
18
|
+
this._lastFrameContacts = new Map();
|
|
19
|
+
this._currentFrameContacts = new Map();
|
|
20
|
+
this._trackCollider = (c) => this._processor.track(c);
|
|
21
|
+
this._untrackCollider = (c) => this._processor.untrack(c);
|
|
22
|
+
}
|
|
23
|
+
notify(message) {
|
|
24
|
+
if (isAddedSystemEntity(message)) {
|
|
25
|
+
const colliderComponent = message.data.get(ColliderComponent);
|
|
26
|
+
colliderComponent.$colliderAdded.subscribe(this._trackCollider);
|
|
27
|
+
colliderComponent.$colliderRemoved.subscribe(this._untrackCollider);
|
|
28
|
+
const collider = colliderComponent.get();
|
|
29
|
+
if (collider) {
|
|
30
|
+
this._processor.track(collider);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const colliderComponent = message.data.get(ColliderComponent);
|
|
35
|
+
const collider = colliderComponent.get();
|
|
36
|
+
if (colliderComponent && collider) {
|
|
37
|
+
this._processor.untrack(collider);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
initialize(scene) {
|
|
42
|
+
this._engine = scene.engine;
|
|
43
|
+
}
|
|
44
|
+
update(_entities, elapsedMs) {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!Physics.enabled) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Collect up all the colliders
|
|
50
|
+
let colliders = [];
|
|
51
|
+
for (const entity of _entities) {
|
|
52
|
+
const colliderComp = entity.get(ColliderComponent);
|
|
53
|
+
const collider = colliderComp === null || colliderComp === void 0 ? void 0 : colliderComp.get();
|
|
54
|
+
if (colliderComp && ((_a = colliderComp.owner) === null || _a === void 0 ? void 0 : _a.active) && collider) {
|
|
55
|
+
colliderComp.update();
|
|
56
|
+
if (collider instanceof CompositeCollider) {
|
|
57
|
+
colliders = colliders.concat(collider.getColliders());
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
colliders.push(collider);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Update the spatial partitioning data structures
|
|
65
|
+
// TODO if collider invalid it will break the processor
|
|
66
|
+
// TODO rename "update" to something more specific
|
|
67
|
+
this._processor.update(colliders);
|
|
68
|
+
// Run broadphase on all colliders and locates potential collisions
|
|
69
|
+
const pairs = this._processor.broadphase(colliders, elapsedMs);
|
|
70
|
+
this._currentFrameContacts.clear();
|
|
71
|
+
// Given possible pairs find actual contacts
|
|
72
|
+
let contacts = this._processor.narrowphase(pairs, this._engine.debug.stats.currFrame);
|
|
73
|
+
const solver = this.getSolver();
|
|
74
|
+
// Solve, this resolves the position/velocity so entities aren't overlapping
|
|
75
|
+
contacts = solver.solve(contacts);
|
|
76
|
+
// Record contacts
|
|
77
|
+
contacts.forEach((c) => this._currentFrameContacts.set(c.id, c));
|
|
78
|
+
// Emit contact start/end events
|
|
79
|
+
this.runContactStartEnd();
|
|
80
|
+
// reset the last frame cache
|
|
81
|
+
this._lastFrameContacts.clear();
|
|
82
|
+
// Keep track of collisions contacts that have started or ended
|
|
83
|
+
this._lastFrameContacts = new Map(this._currentFrameContacts);
|
|
84
|
+
}
|
|
85
|
+
getSolver() {
|
|
86
|
+
return Physics.collisionResolutionStrategy === CollisionResolutionStrategy.Realistic ? this._realisticSolver : this._arcadeSolver;
|
|
87
|
+
}
|
|
88
|
+
debug(ex) {
|
|
89
|
+
this._processor.debug(ex);
|
|
90
|
+
}
|
|
91
|
+
runContactStartEnd() {
|
|
92
|
+
for (const [id, c] of this._currentFrameContacts) {
|
|
93
|
+
// find all new contacts
|
|
94
|
+
if (!this._lastFrameContacts.has(id)) {
|
|
95
|
+
const colliderA = c.colliderA;
|
|
96
|
+
const colliderB = c.colliderB;
|
|
97
|
+
colliderA.events.emit('collisionstart', new CollisionStartEvent(colliderA, colliderB, c));
|
|
98
|
+
colliderA.events.emit('contactstart', new ContactStartEvent(colliderA, colliderB, c));
|
|
99
|
+
colliderB.events.emit('collisionstart', new CollisionStartEvent(colliderB, colliderA, c));
|
|
100
|
+
colliderB.events.emit('contactstart', new ContactStartEvent(colliderB, colliderA, c));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// find all contacts taht have ceased
|
|
104
|
+
for (const [id, c] of this._lastFrameContacts) {
|
|
105
|
+
if (!this._currentFrameContacts.has(id)) {
|
|
106
|
+
const colliderA = c.colliderA;
|
|
107
|
+
const colliderB = c.colliderB;
|
|
108
|
+
colliderA.events.emit('collisionend', new CollisionEndEvent(colliderA, colliderB));
|
|
109
|
+
colliderA.events.emit('contactend', new ContactEndEvent(colliderA, colliderB));
|
|
110
|
+
colliderB.events.emit('collisionend', new CollisionEndEvent(colliderB, colliderA));
|
|
111
|
+
colliderB.events.emit('contactend', new ContactEndEvent(colliderB, colliderA));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=CollisionSystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionSystem.js","sourceRoot":"","sources":["../../../src/engine/Collision/CollisionSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An enum that describes the types of collisions bodies can participate in
|
|
3
|
+
*/
|
|
4
|
+
export var CollisionType;
|
|
5
|
+
(function (CollisionType) {
|
|
6
|
+
/**
|
|
7
|
+
* Bodies with the `PreventCollision` setting do not participate in any
|
|
8
|
+
* collisions and do not raise collision events.
|
|
9
|
+
*/
|
|
10
|
+
CollisionType["PreventCollision"] = "PreventCollision";
|
|
11
|
+
/**
|
|
12
|
+
* Bodies with the `Passive` setting only raise collision events, but are not
|
|
13
|
+
* influenced or moved by other bodies and do not influence or move other bodies.
|
|
14
|
+
* This is useful for use in trigger type behavior.
|
|
15
|
+
*/
|
|
16
|
+
CollisionType["Passive"] = "Passive";
|
|
17
|
+
/**
|
|
18
|
+
* Bodies with the `Active` setting raise collision events and participate
|
|
19
|
+
* in collisions with other bodies and will be push or moved by bodies sharing
|
|
20
|
+
* the `Active` or `Fixed` setting.
|
|
21
|
+
*/
|
|
22
|
+
CollisionType["Active"] = "Active";
|
|
23
|
+
/**
|
|
24
|
+
* Bodies with the `Fixed` setting raise collision events and participate in
|
|
25
|
+
* collisions with other bodies. Actors with the `Fixed` setting will not be
|
|
26
|
+
* pushed or moved by other bodies sharing the `Fixed`. Think of Fixed
|
|
27
|
+
* bodies as "immovable/unstoppable" objects. If two `Fixed` bodies meet they will
|
|
28
|
+
* not be pushed or moved by each other, they will not interact except to throw
|
|
29
|
+
* collision events.
|
|
30
|
+
*/
|
|
31
|
+
CollisionType["Fixed"] = "Fixed";
|
|
32
|
+
})(CollisionType || (CollisionType = {}));
|
|
33
|
+
//# sourceMappingURL=CollisionType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionType.js","sourceRoot":"","sources":["../../../src/engine/Collision/CollisionType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,aA2BX;AA3BD,WAAY,aAAa;IACvB;;;OAGG;IACH,sDAAqC,CAAA;IACrC;;;;OAIG;IACH,oCAAmB,CAAA;IACnB;;;;OAIG;IACH,kCAAiB,CAAA;IACjB;;;;;;;OAOG;IACH,gCAAe,CAAA;AACjB,CAAC,EA3BW,aAAa,KAAb,aAAa,QA2BxB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Physics } from '../Physics';
|
|
2
|
+
import { CollisionType } from '../CollisionType';
|
|
3
|
+
import { Pair } from './Pair';
|
|
4
|
+
import { BodyComponent } from '../BodyComponent';
|
|
5
|
+
/**
|
|
6
|
+
* Collision contacts are used internally by Excalibur to resolve collision between colliders. This
|
|
7
|
+
* Pair prevents collisions from being evaluated more than one time
|
|
8
|
+
*/
|
|
9
|
+
export class CollisionContact {
|
|
10
|
+
constructor(colliderA, colliderB, mtv, normal, tangent, points, localPoints, info) {
|
|
11
|
+
this._canceled = false;
|
|
12
|
+
this.colliderA = colliderA;
|
|
13
|
+
this.colliderB = colliderB;
|
|
14
|
+
this.mtv = mtv;
|
|
15
|
+
this.normal = normal;
|
|
16
|
+
this.tangent = tangent;
|
|
17
|
+
this.points = points;
|
|
18
|
+
this.localPoints = localPoints;
|
|
19
|
+
this.info = info;
|
|
20
|
+
this.id = Pair.calculatePairHash(colliderA.id, colliderB.id);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Match contact awake state, except if body's are Fixed
|
|
24
|
+
*/
|
|
25
|
+
matchAwake() {
|
|
26
|
+
const bodyA = this.colliderA.owner.get(BodyComponent);
|
|
27
|
+
const bodyB = this.colliderB.owner.get(BodyComponent);
|
|
28
|
+
if (bodyA && bodyB) {
|
|
29
|
+
if (bodyA.sleeping !== bodyB.sleeping) {
|
|
30
|
+
if (bodyA.sleeping && bodyA.collisionType !== CollisionType.Fixed && bodyB.sleepMotion >= Physics.wakeThreshold) {
|
|
31
|
+
bodyA.setSleeping(false);
|
|
32
|
+
}
|
|
33
|
+
if (bodyB.sleeping && bodyB.collisionType !== CollisionType.Fixed && bodyA.sleepMotion >= Physics.wakeThreshold) {
|
|
34
|
+
bodyB.setSleeping(false);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
isCanceled() {
|
|
40
|
+
return this._canceled;
|
|
41
|
+
}
|
|
42
|
+
cancel() {
|
|
43
|
+
this._canceled = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=CollisionContact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionContact.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/CollisionContact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAgD3B,YACE,SAAmB,EACnB,SAAmB,EACnB,GAAW,EACX,MAAc,EACd,OAAe,EACf,MAAgB,EAChB,WAAqB,EACrB,IAAoB;QAvDd,cAAS,GAAG,KAAK,CAAC;QAyDxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACI,UAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;gBACrC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE;oBAC/G,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE;oBAC/G,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC1B;aACF;SACF;IACH,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollisionProcessor.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/CollisionProcessor.ts"],"names":[],"mappings":""}
|