-
released this
2023-11-05 01:09:12 -08:00 | 0 commits to main since this release-
Better Init
- There are new and better options for the init function to give a better idea of what is required for a zoomable or normal doodler
- Adds a
minScale
andmaxScale
option for the zoomable canvas - Added a
fillScreen
option to set the canvas size to the full body size- This does require the body to be set to the correct size and not have any margin
- The canvas will automatically resize if the size of the body changes
-
Native animation timing
- Switched to the browser's native
requestAnimationFrame
when a framerate is not provided to the initializer. This improves flickering - Passing a framerate will still function as it did before
- Switched to the browser's native
-
Frame time - the elapsed milliseconds since the last draw call will be passed to each layer's callback
-
2 image animation methods
- GIF: gets timing and frame information from a .gif file. This is inherently limited by the .gif format, including color-depth and framerate
- The
GIFAnimation.draw
method should be called with the frame time that is passed to the layer - Currently no method to arbitrarily draw a frame, but it is planned
- The
- Sprite: the
SpriteAnimation
class requires manual configuration- You must define the width and height of the cells and the cells must all be the same size
- The cells are arranged as a 2 dimensional grid so you must also provide the amount of cells in each row and column
- Timing is determined by a multiplier. The frame counter will increment by
1 * timing
on every draw call. Every whole number it increases by will increase the frame by 1
- Both methods of animation take a scale multiplier property that defaults to 1.
- GIF: gets timing and frame information from a .gif file. This is inherently limited by the .gif format, including color-depth and framerate
-
4 collision detection methods. These should be enough to check collision for just about any shape - lines, arbitrary convex polygons, splines (bezier curve)
- AABB - axis aligned bounding box
- Compares two AABBs to see if they overlap
- Circular
- Compares two circles to see if they overlap. At least one circle should have a radius > 1
- SAT - separation axis theorem
- Can compare arbitrary polygons, circles, and splines
- 4 comparison functions:
satCollisionSpline
,satCollisionPolygon
,satCollisionCircle
, andsatCollisionAABBCircle
- Unless specified, these all compare a polygon to the shape
- AABB to circle comparison is most easily accomplished via SAT.
- Spline-Circle collision is a method on the
SplineSegment
class
- AABB - axis aligned bounding box
-
New geometry classes
SplineSegment
- Defines a spline with the provided vectors
- Includes a lot of utility methods to operate on a spline
Polygon
- Defines an arbitrary polygon using an array of vectors
- Includes some utility methods to operate on a polygon
- Does not currently have vertex ordering to ensure edges do not cross. The vertices provided to the constructor must be in the correct order.
This marks Doodler's first release as a game making toolkit!
Downloads
-
-
0.1.0a Stable
released this
2023-10-28 07:06:56 -07:00 | 11 commits to main since this releaseDownloads
-
0.1.0 Stable
released this
2023-10-28 06:41:02 -07:00 | 12 commits to main since this releaseWith this release, I feel that we are finally into a minor version. No, it doesn't have a lot of changes from the last patch, but there has been so much added that I feel like this is the first proper version. This one adds a simple
moveOrigin
method to the zoomable canvas to allow arbitrary movement from an external sourceDownloads
-
0.0.9d Stable
released this
2023-10-26 01:31:14 -07:00 | 12 commits to main since this releaseAdds
drawImageWithOutline
to automatically outline the edges of your image's visible pixels. Note: this method makes fordrawImage
calls per frame, so use sparinglyDownloads
-
0.0.9c Stable
released this
2023-10-26 00:19:56 -07:00 | 13 commits to main since this releasemakes postinit optional
Downloads
-
0.0.9b Stable
released this
2023-10-26 00:16:29 -07:00 | 13 commits to main since this releaseAdds a post init option to the initializer and constructor that offers one time direct access to the rendering context to allow for more in depth configuration
Downloads
-
0.0.9a Stable
released this
2023-10-25 16:43:58 -07:00 | 14 commits to main since this releaseAdds a drawWithAlpha handler
Downloads
-
0.0.9 Stable
released this
2023-10-24 00:13:23 -07:00 | 15 commits to main since this releaseAdds a
deferDrawing
method that defers draw calls until after the entire layer has been drawn. This allows you to do one sub layer within the layer that doesn't interrupt the typical draw order.Downloads
-
0.0.8e Stable
released this
2023-10-23 23:56:15 -07:00 | 16 commits to main since this releaseDownloads
-
0.0.8d Stable
released this
2023-10-23 23:50:29 -07:00 | 17 commits to main since this releaseDownloads