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,413 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Sprite } from './Sprite';
|
|
8
|
+
import { Animation } from './Animation';
|
|
9
|
+
import { Color } from '../Color';
|
|
10
|
+
import * as Effects from './SpriteEffects';
|
|
11
|
+
import { Texture } from './Texture';
|
|
12
|
+
import { Logger } from '../Util/Log';
|
|
13
|
+
import { BaseAlign, TextAlign } from '../Graphics/FontCommon';
|
|
14
|
+
import { obsolete } from '../Util/Decorators';
|
|
15
|
+
import { vec } from '../Math/vector';
|
|
16
|
+
/**
|
|
17
|
+
* Sprite sheets are a useful mechanism for slicing up image resources into
|
|
18
|
+
* separate sprites or for generating in game animations. [[Sprite|Sprites]] are organized
|
|
19
|
+
* in row major order in the [[SpriteSheet]].
|
|
20
|
+
* @deprecated Will be removed in v0.26.0
|
|
21
|
+
*/
|
|
22
|
+
export class SpriteSheet {
|
|
23
|
+
/**
|
|
24
|
+
* @param imageOrConfigOrSprites The backing image texture to build the SpriteSheet, option bag, or sprite list
|
|
25
|
+
* @param columns The number of columns in the image texture
|
|
26
|
+
* @param rows The number of rows in the image texture
|
|
27
|
+
* @param spWidth The width of each individual sprite in pixels
|
|
28
|
+
* @param spHeight The height of each individual sprite in pixels
|
|
29
|
+
* @param spacing The spacing between every sprite in a spritesheet
|
|
30
|
+
*/
|
|
31
|
+
constructor(imageOrConfigOrSprites, columns, rows, spWidth, spHeight, spacing) {
|
|
32
|
+
this._sprites = [];
|
|
33
|
+
this._image = null;
|
|
34
|
+
this._columns = 0;
|
|
35
|
+
this._rows = 0;
|
|
36
|
+
this._spWidth = 0;
|
|
37
|
+
this._spHeight = 0;
|
|
38
|
+
this._spacing = 0;
|
|
39
|
+
let loadFromImage = false;
|
|
40
|
+
if (imageOrConfigOrSprites instanceof Array) {
|
|
41
|
+
this._sprites = imageOrConfigOrSprites;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (imageOrConfigOrSprites && !(imageOrConfigOrSprites instanceof Texture)) {
|
|
45
|
+
this._columns = imageOrConfigOrSprites.columns;
|
|
46
|
+
this._rows = imageOrConfigOrSprites.rows;
|
|
47
|
+
this._spWidth = imageOrConfigOrSprites.spWidth;
|
|
48
|
+
this._spHeight = imageOrConfigOrSprites.spHeight;
|
|
49
|
+
this._image = imageOrConfigOrSprites.image;
|
|
50
|
+
this._spacing = imageOrConfigOrSprites.spacing || 0;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this._image = imageOrConfigOrSprites;
|
|
54
|
+
this._columns = columns;
|
|
55
|
+
this._rows = rows;
|
|
56
|
+
this._spWidth = spWidth;
|
|
57
|
+
this._spHeight = spHeight;
|
|
58
|
+
this._spacing = spacing || 0;
|
|
59
|
+
}
|
|
60
|
+
this._sprites = new Array(this._columns * this._rows);
|
|
61
|
+
loadFromImage = true;
|
|
62
|
+
}
|
|
63
|
+
// Inspect actual image dimensions with preloading
|
|
64
|
+
if (this.image instanceof Texture) {
|
|
65
|
+
let isWidthError = false;
|
|
66
|
+
let isHeightError = false;
|
|
67
|
+
if (this.image.isLoaded()) {
|
|
68
|
+
isWidthError = this.spWidth * this.columns > this.image.image.naturalWidth;
|
|
69
|
+
isHeightError = this.spHeight * this.rows > this.image.image.naturalHeight;
|
|
70
|
+
if (isWidthError) {
|
|
71
|
+
throw new RangeError(`SpriteSheet specified is wider, ` +
|
|
72
|
+
`${this.columns} cols x ${this.spWidth} pixels > ${this.image.image.naturalWidth} ` +
|
|
73
|
+
`pixels than image width`);
|
|
74
|
+
}
|
|
75
|
+
if (isHeightError) {
|
|
76
|
+
throw new RangeError(`SpriteSheet specified is taller, ` +
|
|
77
|
+
`${this.rows} rows x ${this.spHeight} pixels > ${this.image.image.naturalHeight} ` +
|
|
78
|
+
`pixels than image height`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (loadFromImage) {
|
|
83
|
+
const spacing = this.getSpacingDimensions();
|
|
84
|
+
for (let row = 0; row < this.rows; row++) {
|
|
85
|
+
for (let col = 0; col < this.columns; col++) {
|
|
86
|
+
this._sprites[col + row * this.columns] = new Sprite(this.image, col * this.spWidth + spacing.margin * col + spacing.left, row * this.spHeight + spacing.margin * row + spacing.top, this.spWidth, this.spHeight);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Gets the raw spacing dimensions for the sprites in the sheet, which can be a fixed number or custom dimensions.
|
|
93
|
+
*/
|
|
94
|
+
get spacing() {
|
|
95
|
+
return this._spacing;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get a copy of the backing sprite array
|
|
99
|
+
*/
|
|
100
|
+
get sprites() {
|
|
101
|
+
return [...this._sprites];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The backing texture used for the sprite sheet
|
|
105
|
+
*/
|
|
106
|
+
get image() {
|
|
107
|
+
return this._image;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The number of columns in the sheet
|
|
111
|
+
*/
|
|
112
|
+
get columns() {
|
|
113
|
+
return this._columns;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The number of rows in the sheet
|
|
117
|
+
*/
|
|
118
|
+
get rows() {
|
|
119
|
+
return this._rows;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The width of the individual sprites
|
|
123
|
+
*/
|
|
124
|
+
get spWidth() {
|
|
125
|
+
return this._spWidth;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The height of the individual sprites
|
|
129
|
+
*/
|
|
130
|
+
get spHeight() {
|
|
131
|
+
return this._spHeight;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Gets the calculated spacing dimensions based on whether spacing
|
|
135
|
+
* is a fixed number or has different values for each dimension
|
|
136
|
+
*/
|
|
137
|
+
getSpacingDimensions() {
|
|
138
|
+
var _a, _b, _c;
|
|
139
|
+
if (typeof this.spacing === 'number') {
|
|
140
|
+
return {
|
|
141
|
+
left: this.spacing,
|
|
142
|
+
top: this.spacing,
|
|
143
|
+
margin: this.spacing
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return {
|
|
148
|
+
left: (_a = this.spacing.left) !== null && _a !== void 0 ? _a : 0,
|
|
149
|
+
top: (_b = this.spacing.top) !== null && _b !== void 0 ? _b : 0,
|
|
150
|
+
margin: (_c = this.spacing.margin) !== null && _c !== void 0 ? _c : 0
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create an animation from the this SpriteSheet by listing out the
|
|
156
|
+
* sprite indices. Sprites are organized in row major order in the SpriteSheet.
|
|
157
|
+
* @param engine Reference to the current game [[Engine]]
|
|
158
|
+
* @param indices An array of sprite indices to use in the animation
|
|
159
|
+
* @param speed The number in milliseconds to display each frame in the animation
|
|
160
|
+
*/
|
|
161
|
+
getAnimationByIndices(engine, indices, speed) {
|
|
162
|
+
let images = indices.map((index) => {
|
|
163
|
+
return this.sprites[index];
|
|
164
|
+
});
|
|
165
|
+
images = images.map(function (i) {
|
|
166
|
+
return i.clone();
|
|
167
|
+
});
|
|
168
|
+
return new Animation(engine, images, speed);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Create an animation from the this SpriteSheet by specifying the range of
|
|
172
|
+
* images with the beginning (inclusive) and ending (exclusive) index
|
|
173
|
+
* For example `getAnimationBetween(engine, 0, 5, 200)` returns an animation with 5 frames.
|
|
174
|
+
* @param engine Reference to the current game Engine
|
|
175
|
+
* @param beginIndex The index to start taking frames (inclusive)
|
|
176
|
+
* @param endIndex The index to stop taking frames (exclusive)
|
|
177
|
+
* @param speed The number in milliseconds to display each frame in the animation
|
|
178
|
+
*/
|
|
179
|
+
getAnimationBetween(engine, beginIndex, endIndex, speed) {
|
|
180
|
+
let images = this.sprites.slice(beginIndex, endIndex);
|
|
181
|
+
images = images.map(function (i) {
|
|
182
|
+
return i.clone();
|
|
183
|
+
});
|
|
184
|
+
return new Animation(engine, images, speed);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Treat the entire SpriteSheet as one animation, organizing the frames in
|
|
188
|
+
* row major order.
|
|
189
|
+
* @param engine Reference to the current game [[Engine]]
|
|
190
|
+
* @param speed The number in milliseconds to display each frame the animation
|
|
191
|
+
*/
|
|
192
|
+
getAnimationForAll(engine, speed) {
|
|
193
|
+
const sprites = this.sprites.map(function (i) {
|
|
194
|
+
return i.clone();
|
|
195
|
+
});
|
|
196
|
+
return new Animation(engine, sprites, speed);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Retrieve a specific sprite from the SpriteSheet by its index. Sprites are organized
|
|
200
|
+
* in row major order in the SpriteSheet.
|
|
201
|
+
* @param index The index of the sprite
|
|
202
|
+
*/
|
|
203
|
+
getSprite(index) {
|
|
204
|
+
if (index >= 0 && index < this.sprites.length) {
|
|
205
|
+
return this.sprites[index];
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
throw new Error('Invalid index: ' + index);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get an animation with bespoke sprite coordinates. This is useful if the SpriteSheet is
|
|
213
|
+
* packed and not a uniform width or height. The resulting [[Animation]] will have the height and width of the
|
|
214
|
+
* largest dimension (width, height) from among the sprite coordinates
|
|
215
|
+
* @param engine
|
|
216
|
+
* @param spriteCoordinates
|
|
217
|
+
* @param speed
|
|
218
|
+
*/
|
|
219
|
+
getAnimationByCoords(engine, spriteCoordinates, speed) {
|
|
220
|
+
let maxWidth = 0;
|
|
221
|
+
let maxHeight = 0;
|
|
222
|
+
const sprites = new Array(spriteCoordinates.length);
|
|
223
|
+
for (let i = 0; i < spriteCoordinates.length; i++) {
|
|
224
|
+
const coord = spriteCoordinates[i];
|
|
225
|
+
// no need to pass image again if using a spritesheet
|
|
226
|
+
coord.image = coord.image || this.image;
|
|
227
|
+
maxWidth = Math.max(maxWidth, coord.drawWidth);
|
|
228
|
+
maxHeight = Math.max(maxHeight, coord.drawHeight);
|
|
229
|
+
sprites[i] = new Sprite(coord);
|
|
230
|
+
}
|
|
231
|
+
const anim = new Animation(engine, sprites, speed);
|
|
232
|
+
anim.drawWidth = maxWidth;
|
|
233
|
+
anim.drawHeight = maxHeight;
|
|
234
|
+
return anim;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Sprite fonts are a used in conjunction with a [[Label]] to specify
|
|
239
|
+
* a particular bitmap as a font. Note that some font features are not
|
|
240
|
+
* supported by Sprite fonts.
|
|
241
|
+
* @deprecated Will be removed into v0.26.0
|
|
242
|
+
*/
|
|
243
|
+
let SpriteFont = class SpriteFont extends SpriteSheet {
|
|
244
|
+
/**
|
|
245
|
+
* @param imageOrConfig The backing image texture to build the SpriteFont or the sprite font option bag
|
|
246
|
+
* @param alphabet A string representing all the characters in the image, in row major order.
|
|
247
|
+
* @param caseInsensitive Indicate whether this font takes case into account
|
|
248
|
+
* @param columns The number of columns of characters in the image
|
|
249
|
+
* @param rows The number of rows of characters in the image
|
|
250
|
+
* @param spWidth The width of each character in pixels
|
|
251
|
+
* @param spHeight The height of each character in pixels
|
|
252
|
+
*/
|
|
253
|
+
constructor(imageOrConfig, alphabet, caseInsensitive, columns, rows, spWidth, spHeight, spacing) {
|
|
254
|
+
super(imageOrConfig instanceof Texture
|
|
255
|
+
? {
|
|
256
|
+
image: imageOrConfig,
|
|
257
|
+
spWidth: spWidth,
|
|
258
|
+
spHeight: spHeight,
|
|
259
|
+
rows: rows,
|
|
260
|
+
columns: columns,
|
|
261
|
+
spacing: spacing || 0
|
|
262
|
+
}
|
|
263
|
+
: imageOrConfig);
|
|
264
|
+
this._currentColor = Color.Black;
|
|
265
|
+
this._currentOpacity = 1.0;
|
|
266
|
+
this._spriteRecord = {};
|
|
267
|
+
// text shadow
|
|
268
|
+
this._textShadowOn = false;
|
|
269
|
+
this._textShadowDirty = true;
|
|
270
|
+
this._textShadowColor = Color.Black;
|
|
271
|
+
this._textShadowSprites = {};
|
|
272
|
+
this._shadowOffsetX = 5;
|
|
273
|
+
this._shadowOffsetY = 5;
|
|
274
|
+
if (imageOrConfig && !(imageOrConfig instanceof Texture)) {
|
|
275
|
+
alphabet = imageOrConfig.alphabet;
|
|
276
|
+
caseInsensitive = imageOrConfig.caseInsensitive;
|
|
277
|
+
}
|
|
278
|
+
this.alphabet = alphabet;
|
|
279
|
+
this.caseInsensitive = caseInsensitive;
|
|
280
|
+
this._spriteRecord = this.getTextSprites();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Returns a dictionary that maps each character in the alphabet to the appropriate [[Sprite]].
|
|
284
|
+
*/
|
|
285
|
+
getTextSprites() {
|
|
286
|
+
const lookup = {};
|
|
287
|
+
for (let i = 0; i < this.alphabet.length; i++) {
|
|
288
|
+
let char = this.alphabet[i];
|
|
289
|
+
if (this.caseInsensitive) {
|
|
290
|
+
char = char.toLowerCase();
|
|
291
|
+
}
|
|
292
|
+
lookup[char] = this.sprites[i].clone();
|
|
293
|
+
}
|
|
294
|
+
return lookup;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Sets the text shadow for sprite fonts
|
|
298
|
+
* @param offsetX The x offset in pixels to place the shadow
|
|
299
|
+
* @param offsetY The y offset in pixels to place the shadow
|
|
300
|
+
* @param shadowColor The color of the text shadow
|
|
301
|
+
*/
|
|
302
|
+
setTextShadow(offsetX, offsetY, shadowColor) {
|
|
303
|
+
this._textShadowOn = true;
|
|
304
|
+
this._shadowOffsetX = offsetX;
|
|
305
|
+
this._shadowOffsetY = offsetY;
|
|
306
|
+
this._textShadowColor = shadowColor.clone();
|
|
307
|
+
this._textShadowDirty = true;
|
|
308
|
+
for (const character in this._spriteRecord) {
|
|
309
|
+
this._textShadowSprites[character] = this._spriteRecord[character].clone();
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Toggles text shadows on or off
|
|
314
|
+
*/
|
|
315
|
+
useTextShadow(on) {
|
|
316
|
+
this._textShadowOn = on;
|
|
317
|
+
if (on) {
|
|
318
|
+
this.setTextShadow(5, 5, this._textShadowColor);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Draws the current sprite font
|
|
323
|
+
*/
|
|
324
|
+
draw(ctx, text, x, y, options) {
|
|
325
|
+
options = this._parseOptions(options);
|
|
326
|
+
if (this._currentColor.toString() !== options.color.toString() || this._currentOpacity !== options.opacity) {
|
|
327
|
+
this._currentOpacity = options.opacity;
|
|
328
|
+
this._currentColor = options.color;
|
|
329
|
+
for (const char in this._spriteRecord) {
|
|
330
|
+
this._spriteRecord[char].clearEffects();
|
|
331
|
+
this._spriteRecord[char].fill(options.color);
|
|
332
|
+
this._spriteRecord[char].opacity(options.opacity);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
if (this._textShadowOn && this._textShadowDirty && this._textShadowColor) {
|
|
336
|
+
for (const characterShadow in this._textShadowSprites) {
|
|
337
|
+
this._textShadowSprites[characterShadow].clearEffects();
|
|
338
|
+
this._textShadowSprites[characterShadow].addEffect(new Effects.Fill(this._textShadowColor.clone()));
|
|
339
|
+
}
|
|
340
|
+
this._textShadowDirty = false;
|
|
341
|
+
}
|
|
342
|
+
// find the current length of text in pixels
|
|
343
|
+
const sprite = this.sprites[0];
|
|
344
|
+
// find the current height fo the text in pixels
|
|
345
|
+
const height = sprite.height;
|
|
346
|
+
// calculate appropriate scale for font size
|
|
347
|
+
const scale = options.fontSize / height;
|
|
348
|
+
const length = text.length * sprite.width * scale + text.length * options.letterSpacing;
|
|
349
|
+
let currX = x;
|
|
350
|
+
if (options.textAlign === TextAlign.Left || options.textAlign === TextAlign.Start) {
|
|
351
|
+
currX = x;
|
|
352
|
+
}
|
|
353
|
+
else if (options.textAlign === TextAlign.Right || options.textAlign === TextAlign.End) {
|
|
354
|
+
currX = x - length;
|
|
355
|
+
}
|
|
356
|
+
else if (options.textAlign === TextAlign.Center) {
|
|
357
|
+
currX = x - length / 2;
|
|
358
|
+
}
|
|
359
|
+
let currY = y - height * scale;
|
|
360
|
+
if (options.baseAlign === BaseAlign.Top || options.baseAlign === BaseAlign.Hanging) {
|
|
361
|
+
currY = y;
|
|
362
|
+
}
|
|
363
|
+
else if (options.baseAlign === BaseAlign.Ideographic ||
|
|
364
|
+
options.baseAlign === BaseAlign.Bottom ||
|
|
365
|
+
options.baseAlign === BaseAlign.Alphabetic) {
|
|
366
|
+
currY = y - height * scale;
|
|
367
|
+
}
|
|
368
|
+
else if (options.baseAlign === BaseAlign.Middle) {
|
|
369
|
+
currY = y - (height * scale) / 2;
|
|
370
|
+
}
|
|
371
|
+
for (let i = 0; i < text.length; i++) {
|
|
372
|
+
let character = text[i];
|
|
373
|
+
if (this.caseInsensitive) {
|
|
374
|
+
character = character.toLowerCase();
|
|
375
|
+
}
|
|
376
|
+
try {
|
|
377
|
+
// if text shadow
|
|
378
|
+
if (this._textShadowOn) {
|
|
379
|
+
this._textShadowSprites[character].drawAroundAnchor = false;
|
|
380
|
+
this._textShadowSprites[character].scale = vec(scale, scale);
|
|
381
|
+
this._textShadowSprites[character].draw(ctx, currX + this._shadowOffsetX, currY + this._shadowOffsetY);
|
|
382
|
+
}
|
|
383
|
+
const charSprite = this._spriteRecord[character];
|
|
384
|
+
charSprite.drawAroundAnchor = false;
|
|
385
|
+
charSprite.scale = vec(scale, scale);
|
|
386
|
+
charSprite.draw(ctx, currX, currY);
|
|
387
|
+
currX += charSprite.drawWidth + options.letterSpacing;
|
|
388
|
+
}
|
|
389
|
+
catch (e) {
|
|
390
|
+
Logger.getInstance().error(`SpriteFont Error drawing char ${character}`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
_parseOptions(options) {
|
|
395
|
+
return {
|
|
396
|
+
fontSize: options.fontSize || 10,
|
|
397
|
+
letterSpacing: options.letterSpacing || 0,
|
|
398
|
+
color: options.color || Color.Black,
|
|
399
|
+
textAlign: typeof options.textAlign === undefined ? TextAlign.Left : options.textAlign,
|
|
400
|
+
baseAlign: typeof options.baseAlign === undefined ? BaseAlign.Bottom : options.baseAlign,
|
|
401
|
+
maxWidth: options.maxWidth || -1,
|
|
402
|
+
opacity: options.opacity || 0
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
SpriteFont = __decorate([
|
|
407
|
+
obsolete({
|
|
408
|
+
message: 'SpriteSheet will be removed in v0.26.0',
|
|
409
|
+
alternateMethod: 'Use Graphics.SpriteSheet'
|
|
410
|
+
})
|
|
411
|
+
], SpriteFont);
|
|
412
|
+
export { SpriteFont };
|
|
413
|
+
//# sourceMappingURL=SpriteSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheet.js","sourceRoot":"","sources":["../../../src/engine/Drawing/SpriteSheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Resource } from '../Resources/Resource';
|
|
2
|
+
import { Sprite } from './Sprite';
|
|
3
|
+
/**
|
|
4
|
+
* The [[Texture]] object allows games built in Excalibur to load image resources.
|
|
5
|
+
* [[Texture]] is an [[Loadable]] which means it can be passed to a [[Loader]]
|
|
6
|
+
* to pre-load before starting a level or game.
|
|
7
|
+
* @deprecated
|
|
8
|
+
*/
|
|
9
|
+
export class Texture {
|
|
10
|
+
/**
|
|
11
|
+
* @param path Path to the image resource or a base64 string representing an image "data:image/png;base64,iVB..."
|
|
12
|
+
* @param bustCache Optionally load texture with cache busting
|
|
13
|
+
*/
|
|
14
|
+
constructor(path, bustCache = true) {
|
|
15
|
+
this.path = path;
|
|
16
|
+
this.bustCache = bustCache;
|
|
17
|
+
this._sprite = null;
|
|
18
|
+
this.loaded = new Promise(resolve => {
|
|
19
|
+
this._loadedResolve = resolve;
|
|
20
|
+
});
|
|
21
|
+
this._resource = new Resource(path, 'blob', bustCache);
|
|
22
|
+
this._sprite = new Sprite(this, 0, 0, 0, 0);
|
|
23
|
+
}
|
|
24
|
+
get image() {
|
|
25
|
+
return this.data;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns true if the Texture is completely loaded and is ready
|
|
29
|
+
* to be drawn.
|
|
30
|
+
*/
|
|
31
|
+
isLoaded() {
|
|
32
|
+
return !!this.data;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Begins loading the texture and returns a promise to be resolved on completion
|
|
36
|
+
*/
|
|
37
|
+
async load() {
|
|
38
|
+
try {
|
|
39
|
+
// Load base64 or blob if needed
|
|
40
|
+
let url;
|
|
41
|
+
if (!this.path.includes('data:image/')) {
|
|
42
|
+
const blob = await this._resource.load();
|
|
43
|
+
url = URL.createObjectURL(blob);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
url = this.path;
|
|
47
|
+
}
|
|
48
|
+
// Decode the image
|
|
49
|
+
const image = new Image();
|
|
50
|
+
image.src = url;
|
|
51
|
+
await image.decode();
|
|
52
|
+
// Set results
|
|
53
|
+
this.data = image;
|
|
54
|
+
this.width = this._sprite.width = image.naturalWidth;
|
|
55
|
+
this.height = this._sprite.height = image.naturalHeight;
|
|
56
|
+
this._sprite = new Sprite(this, 0, 0, this.width, this.height);
|
|
57
|
+
}
|
|
58
|
+
catch (_a) {
|
|
59
|
+
await Promise.reject('Error loading texture');
|
|
60
|
+
}
|
|
61
|
+
// todo emit complete
|
|
62
|
+
this._loadedResolve(this.data);
|
|
63
|
+
return this.data;
|
|
64
|
+
}
|
|
65
|
+
asSprite() {
|
|
66
|
+
return this._sprite;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=Texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Texture.js","sourceRoot":"","sources":["../../../src/engine/Drawing/Texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;GAKG;AACH,MAAM,OAAO,OAAO;IA2BlB;;;OAGG;IACH,YAAmB,IAAY,EAAS,YAAY,IAAI;QAArC,SAAI,GAAJ,IAAI,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAO;QAnBhD,YAAO,GAAW,IAAI,CAAC;QAWxB,WAAM,GAAG,IAAI,OAAO,CAAmB,OAAO,CAAC,EAAE;YACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;QAOD,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAhBD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAgBD;;;OAGG;IACI,QAAQ;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI;QACf,IAAI;YACF,gCAAgC;YAChC,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACzC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;gBACL,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;aACjB;YAED,mBAAmB;YACnB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YAChB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YAErB,cAAc;YACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;YACxD,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAChE;QAAC,WAAM;YACN,MAAM,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;SAC/C;QACD,qBAAqB;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
package/build/dist/Engine.d.ts
CHANGED
|
@@ -629,11 +629,14 @@ export declare class Engine extends Class implements CanInitialize, CanUpdate, C
|
|
|
629
629
|
* Returns the Engine's running status, Useful for checking whether engine is running or paused.
|
|
630
630
|
*/
|
|
631
631
|
isRunning(): boolean;
|
|
632
|
+
private _screenShotRequests;
|
|
632
633
|
/**
|
|
633
634
|
* Takes a screen shot of the current viewport and returns it as an
|
|
634
635
|
* HTML Image Element.
|
|
636
|
+
* @param preserveHiDPIResolution in the case of HiDPI return the full scaled backing image, by default false
|
|
635
637
|
*/
|
|
636
|
-
screenshot(): HTMLImageElement
|
|
638
|
+
screenshot(preserveHiDPIResolution?: boolean): Promise<HTMLImageElement>;
|
|
639
|
+
private _checkForScreenShots;
|
|
637
640
|
/**
|
|
638
641
|
* Another option available to you to load resources into the game.
|
|
639
642
|
* Immediately after calling this the game will pause and the loading screen
|