Skip to content

Latest commit

 

History

History
218 lines (208 loc) · 8.35 KB

CHANGELOG.2.0.0.md

File metadata and controls

218 lines (208 loc) · 8.35 KB

v2.0.0 Changelog - 2021-11-20

Added

  • GameObjects
    • Added zIndex and visible properties
    • Added new misc gameobject CanvasModulate
    • Added internalRaycasts for checking if it is colliding with an object
    • Added isColliding, isOnFloor, isOnCeiling, and isOnWall methods
    • Added texture prop
    • Added type generic to GameObject for Texture class
    • Added attachTo, attachChild, detachFrom, detachChild methods
    • Added isAttached and attachedChildren properties
    • Rect, RoundRect, Circle, StaticLight, CanvasModulate
      • Added texture colors support
    • Sprite
      • Added textureKey parameter which is the key of a preloaded texture loaded with scene.loader
      • Added anims property which is an AnimationManager
      • Added defaultAnimation property which is a default animation that is created on init
      • Added all properties from SpriteSheet to Sprite as SpriteSheet class has been removed and replaced with Sprite class
    • Particle
      • Added texture color and image support
    • Now extends PhysicsObject which adds a lot more methods and properties (check docs)
  • Map
    • Added id, zIndex, and visible properties
  • Core
    • Added id, zIndex, and visible properties to all renderable objects
    • Added better rendering with depth sorting and only rendering and updating objects that are set to be visible
    • Added ability to preload assets
    • Added events and EventEmitter
  • New Classes
    • Models
      • Added DisplayList class to manage renderable objects
      • Added Texture to save and load images and colors
    • Physics Misc
      • Added Area class to detect intersections with other PhysicsBody hitboxes
    • Misc
      • Added PluginManager Class
    • Math
      • Added Vector2 class to manage coordinates and more
    • Input
      • KeyboardInput
      • MouseInput
      • Models
        • Key
        • Mouse
    • GameObjects
      • Misc
        • Added CanvasModulate with zIndex of 1 which fills up the entire canvas with a color
  • Game
    • Config
      • Added physics object option
      • Added roundPixels option
      • Added pauseRenderingOnBlur
      • Added onPauseRendering
      • Added onResumeRendering
      • Added splashScreen object option
    • Added eventEmitter property
    • Added pluginManager property
    • Added isRendering property
    • Added fps property which is the current fps
    • Added smoothDeltaTime property which is the smoothed out version of deltaTime
    • Added browser property which is the user's browser
    • Added "start sequence" to start method
    • Start Sequence:
      • Show splash screen
      • Preload all assets from all scenes
      • Create all assets from all scenes
  • Scene
    • Added preload and create method
    • Added displayList property
    • Added loader property
    • Added misc.canvasModulate to add property
    • Tools
      • Added math property
        • Added createVector function to tools.math
        • Added vector property to tools.math which is a reference to the Vector2 class
    • Add
      • Added misc to gameobjects property
  • Physics
    • Added PhysicsServer class
    • Added PhysicsBody class
    • Added Hitbox class
    • Collider
      • Added support for group class as a collidesWith
  • Input
    • Added createKeyboardInput method to create a KeyBoardInput
  • Loader
    • Added constructor with scene parameter
    • Added loadJSON, loadHTML, loadXML, loadFont, and loadAudio async methods
    • Added imageStack, jsonStack, htmlStack, xmlStack, fontStack, and audioStack public properties
  • Camera
    • Added lerpX and lerpY to startFollow method
    • Added cull method to only render certain objects
    • Added autoCull method to only render in view objects, aka Frustum Culling
  • Effect
    • Added id, zIndex, and visible properties
  • Math
    • Added lerp function
    • Added Vector2 class
  • Misc
    • Added renderableObject type to Duck.Types
    • Added jsdoc comments
    • Added Duck.TypeClasses which holds all of the classes as types
    • Added Duck.Classes which holds all of the classes as constants
    • Added Duck.Types which holds all of the types needed by classes
    • Added Duck.Types.Math which holds all math related types such as Vector2Like, BoundsLike, and Vector2LikeOptional
    • Added Loader and Texture namespaces to Duck.Types
    • Added Duck.Layers

Changed

  • GameObjects
    • Extends PhysicsBody class
    • Moved most methods and properties to PhysicsBody
    • Renamed draw method to _draw which is a public method, but should not be called manually
    • Collider should not be updated manually, automatically updated in scene.physicsServer
    • Changed how delta time is applied to velocity
    • Changed velocity value to be in pixels per second
    • SpriteSheet class has been removed and replaced with Sprite class
    • Removed applyFilter from Sprite
    • Changed how IDs are generated
  • Core
    • Game loop now uses displayList to render all visible renderable objects
    • Reworked how assets are loaded and created
    • All private properties and methods in all classes are either public or protected
    • All PhysicsBodies now use Game.smoothDeltaTime instead of Game.deltaTime
  • Game
    • Improved AutoCanvas
    • Typescript: canvas and ctx properties are never undefined
    • Moved scene.currentCamera.begin and end to if visible condition
    • Changed start method to be async
    • Changed how delta time is calculated
  • Scene
    • Tools
      • Moved randomInt and randomFloat to math
    • Renamed this.add.sound to this.add.soundPlayer
  • Physics
    • Collider
      • Colliders now use hitboxes instead of GameObjects
      • Changed collider.shape to collider.object
      • Changed collider.update diffCollidesWith parameter to be required and renamed to updatedCollidesWith
      • Changed collider.update to collider.__update which shouldn't be called manually as it is called by PhysicsServer
      • Changed collider.shape to collider.hitbox
      • Reworked how colliders work
  • StaticLight
    • Made class extend GameObject class
  • ParticleEmitter
    • Renamed offload to offloadBounds which takes a Vector2LikeOptional
  • Interactive
    • Button and Text now extend the GameObject class
    • Button default zIndex is set to 4
    • Text default zIndex is set to 5
    • Text width and height properties are correctly set using context.measureText
    • Buttons now can be interacted with even with an active camera
    • Button.scene is now a public property
  • Input
    • Changed how Input works, now works as a base class where you can create different inputs from
    • Now uses Events and EventEmitter to work out of a loop
  • Camera
    • Made viewport property public
    • Renamed follow method to startFollow
  • Map
    • Changed all private properties to be public
  • Sound
    • Renamed Sound class to SoundPlayer
  • Loader
    • Changed static method load to non-static loadTexture method
  • Misc
    • Changed all classes that included the game property to be a public property
    • File Structure
      • Moved particles and interactive folders to gameobjects folder
    • Modified start message
    • Changed project from npm to yarn
    • Changed build script
    • Updated README.md
    • Updated security policy
    • Updated dev dependencies

Removed

  • GameObjects
    • Removed props x and y and changed to position which is a Vector2
    • Removed props vx and vy and changed to velocity which is a Vector2
    • Removed fillColor prop (now is called texture)
    • Removed most methods and properties from GameObject as it now extends PhysicsBody which as all removed methods and properties and more
  • Particle
    • Removed props floatVX and floatVY and changed to floatVelocity Vector2
  • Scene
    • Removed render method
    • Removed adding itself to game scene stack as that produced duplicate scenes
  • Math
    • Removed Duck.Types.Helper.alphaValue return type from randomFloat
  • StaticLight
    • Removed x and y props, now is position vector2
  • Interactive
    • Removed x and y props, now is position vector2
  • ParticleEmitter
    • Removed draw method
    • Removed offload method as it has been renamed and changed to offloadBounds
  • Input
    • Removed all methods and properties excluding game property
  • Camera
    • Removed scrollToZoom method
  • Removed Classes
    • ParticleContainer
    • SpriteSheet (Moved its functionality to Sprite)
    • DuckStorage

Fixed

  • Fixed "bouncy" and "laggy" rect to round-rect collision response #16
  • Fixed Button unable to be interacted with if there is an active camera
  • Fixed scene adding itself to game scene stack as that produced duplicate scenes

Bugs