Skip to content

Commit

Permalink
DuckEngine 2 (#80)
Browse files Browse the repository at this point in the history
v2.0.0 Released

Read CHANGELOG.md
  • Loading branch information
art-emini authored Nov 21, 2021
1 parent 3a171ba commit 6db3ce7
Show file tree
Hide file tree
Showing 424 changed files with 22,082 additions and 37,448 deletions.
5 changes: 4 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
"src/helper/",
"docs/",
"release",
"webpack.config.js"
"webpack.config.js",
"webpack.window.config.js",
"tests/**/*",
"webpack.es5.config.js"
]
}
4 changes: 2 additions & 2 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: '14.x'
- run: npm ci
- run: npm run build:docs
- run: npx yarn install --frozen-lockfile
- run: npx yarn run build:docs
4 changes: 2 additions & 2 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: '14.x'
- run: npm ci
- run: npm run format
- run: npx yarn install --frozen-lockfile
- run: npx yarn run format
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: '14.x'
- run: npm ci
- run: npx yarn install --frozen-lockfile
- run: echo "Linting"
- run: npm run lint
- run: npx yarn run lint
- run: echo "Fixing"
- run: npm run lint:fix
- run: npx yarn run lint:fix
- run: echo "Done"
22 changes: 22 additions & 0 deletions CHANGELOG.1.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# v1.2.0 Changelog - 2021-6-27

## Added

- Map
- Added a Map class that is to be extended for code reusability
- Particles
- Added ParticleContainer class
- Effects
- Added new Effect class
- Added Explosion and Smoke preset effect
- Scene
- Added effect to add method
- Added presetEffect object to add method

## Changed

- TileMap
- TileMap class now extends the new Map class
- Misc
- Updated dependencies
- Changed version
218 changes: 218 additions & 0 deletions CHANGELOG.2.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
# 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](https://ksplatdev.github.io/DuckEngine/))
- 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](https://github.com/ksplatdev/DuckEngine/issues/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

## [Security Policy](SECURITY.md)
Loading

0 comments on commit 6db3ce7

Please sign in to comment.