• emma 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 and maxScale 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
    • 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
      • 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.
    • 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, and satCollisionAABBCircle
          • 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
    • 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

    emma released this 2023-10-28 07:06:56 -07:00 | 11 commits to main since this release

    Downloads
  • 0.1.0 Stable

    emma released this 2023-10-28 06:41:02 -07:00 | 12 commits to main since this release

    With 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 source

    Downloads
  • 0.0.9d Stable

    emma released this 2023-10-26 01:31:14 -07:00 | 12 commits to main since this release

    Adds drawImageWithOutline to automatically outline the edges of your image's visible pixels. Note: this method makes for drawImage calls per frame, so use sparingly

    Downloads
  • 0.0.9c Stable

    emma released this 2023-10-26 00:19:56 -07:00 | 13 commits to main since this release

    makes postinit optional

    Downloads
  • 0.0.9b Stable

    emma released this 2023-10-26 00:16:29 -07:00 | 13 commits to main since this release

    Adds 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

    emma released this 2023-10-25 16:43:58 -07:00 | 14 commits to main since this release

    Adds a drawWithAlpha handler

    Downloads
  • 0.0.9 Stable

    emma released this 2023-10-24 00:13:23 -07:00 | 15 commits to main since this release

    Adds 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

    emma released this 2023-10-23 23:56:15 -07:00 | 16 commits to main since this release

    Downloads
  • 0.0.8d Stable

    emma released this 2023-10-23 23:50:29 -07:00 | 17 commits to main since this release

    Downloads