Skip to content
cangaja - Canvas Game JavaScript Framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apidocs
build
cangaja
demo
libs
src
templates
tools/fizzx
.gitignore
README.md
index.html
yuidoc.json

README.md

cangaja - Canvas Game JavaScript Framework

cangaja is a javascript canvas project that i have started to explore the html canvas features.

Featurelist for now:

  • sound features using Buzz!
  • touch handling using Hammer
  • working with Ejecta on iOS, but Buzz! and Hammer don't work there!
  • Mediaasset class (preload and handle files/data)
  • Director class (with screen handling/fading)
  • Screen class
  • Bitmap class
  • Layer class
  • Sprite class
  • Animation class
  • Map class
  • Button class
  • Menu class
  • Collision handling (rectangle, circle, no pixelperfect collision at the moment)
  • Emitter class (point, line, rectangle, explosion)
  • Particle class
  • Morphing class
  • Translation class (linear, circle, bezier)
  • Sequence class (handles multiple Translations)
  • Tilemap support orthogonal/isometric (Tiled Map Editor .tmx files format xml or csv)
  • Font support (Glyphdesigner EZ Gui text files)
  • TexturePacker support (TexturePacker generic XML file)
  • Box2DHtml support (Box2DHtml5)
  • Destructible Terrain class
  • PhysicsEditor support (PhysicsEditor use Lime + Corona JSON format for use in Box2D Wrapper)
  • Spine 2D support (Spine)

Todo / wish list / bugs:

Changelog (or see GitHub ;o):

  • 2014-12-25 [change] - a lot of changes and optimizations, API rewrite and so on
  • 2014-02-02 [added] - traceContour and triangulation feature in CG.Bitmap class
  • 2014-01-29 [update] - updated ClipperLib and poly2tri lib
  • 2014-01-12 [bugfix] - fixed DebugDraw [change] - B2DPolygon origin is now midhandle
  • 2013-12-09 [added] - new class CG.Game
  • 2013-12-06 [change] - class inheritance clenaup
  • 2013-12-05 [feature] - basic spine support has landed ;o)
  • 2013-11-06 [bugfix] - patched ClipperLib, treat useragent ejecta as useragent safari for ejecta usage. Otherwise cangaja is not working in ejecta.
  • 2013-10-30 [added] - closure compiler for testing [change] - renamed classes: CG.TexturePacker => CG.AtlasTexturePacker and CG.TPImage => CG.AtlasImage
  • 2013-10-17 [bugfix] - of terrain crash, the circle vertices has to be reversed to CCW(?)
  • 2013-10-15 [added] - destructabel terrain class ;o)
  • 2013-10-07 [added] - added libs Clipper and poly2tri
  • 2013-10-07 [change] - removed box2dweb, added box2dhtml5 (Box2D 2.3.0), rework for box2dhtml5, misc updates
  • 2013-04-17 [cleanup] - cleanup again
  • 2013-04-08 [added] - added mode slide for director to switch screens
  • 2013-04-07 [added] - started basic cangaja template for ejecta
  • 2013-04-06 [added] - started basic cangaja template
  • 2013-04-04 [cleanup] - a little folder structure cleanup
  • 2013-04-02 [fixed] - preloader had wrong context
  • 2013-03-05 [added] - apidoc generated with yuidoc
  • 2013-02-22 [added] - added B2DLine class
  • 2013-02-20 [added] - added working B2DBridge class
  • 2013-02-13 [bugfix] - Box2D warpper => added name and uid to each object for correct deleting of objects
  • 2013-02-10 [added] - dragging, deleting and apply impulse of/to Box2D objects
  • 2013-02-05 [added] - first simple Box2D Wrapper with basic shapes: circle, rectangle and polybody
  • 2013-01-24 [added] - Sprite to MapArea collision
  • 2013-01-23 [misc] - purchased Webstorm JavaScript IDE, thats what i call a JS IDE!
  • 2013-01-22 [change] - now finally rewritten for simple inheritance with no way back ;o)
  • 2013-01-19 [added] - added a new scale transition mode between screens in Director class
  • 2013-01-10 [change/bugfix] - rewrite of class Animation for more "inheritance style" and bugfix for correct midhandle
  • 2012-12-30 [added] - added MapPoint and MapArea support to the loadMapXml method => this is also a todo for the json part
  • 2012-12-29 [change] - changed comments to jsdoc style
  • 2012-12-27 [bugfix] - found collision bug in AABB() method after rewrite of object positioning - found bug when a Button is rotated => wrong label rotation
  • 2012-12-27 [change] - classes Emitter, Sprite, Button and Animation are now using a Point Object for positioning
  • 2012-12-25 [change] - cleanup of some useless class inheritances
  • 2012-12-25 [change] - further changes to work with bounds in sprites => possible bound of a tilemap?
  • 2012-12-24 [change] - changed all sources of Game.width/Game.height with Game.bound.width/Game.bound.height
  • 2012-12-22 [added] - added class Bound to work with sprites and specialy sprites and bounds in tilemaps
  • 2012-11-26 [change] - changed class hierarchy. removed most of ejecta specific code
  • 2012-11-17 [bugfix] - bug in method entity => setImage(): image.width/-height <=> image.cutwidth/-height where wrong if TPImage is used
  • 2012-10-09 [feature] - added Bitmap class with some functions
  • 2012-10-09 [change] - little rewrite to work with Ejecta
  • 2012-10-09 [bugfix] - class Tilemap with json source is animating again => forgotten property ;o)
  • 2012-10-09 [feature] - added json support to Map class
  • 2012-10-09 [feature] - added json support to Texturepacker class (indeed Tiled Map Editor can export to json)
  • 2012-10-08 [rewrite] - first rewrite of class map
  • 2012-10-02 [feature] - sprites have now the properties offsetx/offsety for the attached objects - class animation/button inherits the attached object features ;o)
  • 2012-10-02 [fix] particles in emitter pool now sorted correctly after particle reanimation ;o)
  • 2012-09-27 [feature] sprites can have a attached object and control its position for now
  • 2012-09-27 [cleanup] index.html
  • 2012-09-22 [fix] class button now using the font size for centering the text. glypghdesigners lineheight vary very much.
  • 2012-09-14 [feature] added type corona to the emitter class
  • 2012-09-19 [cleanup] class translate
  • 2012-09-16 [fix] fixed wrong width/height when using rotated tpimage
  • 2012-09-16 [speed] for loops optimized
  • 2012-09-14 [feature] added type rectangle to the emitter class
  • 2012-09-14 [fix] Mediaasset last image is not preloading => bug in MediaAsset getImageByName()

Class inheritance

  • Class
    • Atlas-Image (new API)
    • Atlas-TexturePacker
    • Bound (new API)
    • Buffer
    • Director (new API)
    • Emitter (new API)
    • Entity (new API)
      • B2DEntity
        • B2DBridge (new API)
        • B2DChainShape (new API)
        • B2DCircle (new API)
        • B2DLine (new API)
        • B2DPolygon (new API)
        • B2DRectangle (new API)
        • B2DRope (new API)
        • B2DTerrain (new API)
      • Bitmap (new API)
      • Font
      • Map
      • Sprite (new API)
        • Animation (new API)
        • Button (new API)
        • Particle (new API)
      • SpineAnimation (new API)
      • Text (new API)
    • Game
    • Layer (new API)
      • B2DWorld (new API: init, createCircle, createBox, createPoly, createBridge, createRope, createLine, createChainShape => Todo Rest ;o)
    • MapPoints
    • MapAreas
    • MapTileLayer
    • MapTileProperties
    • MediaAsset
    • Menu (new API)
    • Morph (new API)
    • Point
      • Vector
    • Screen (new API)
    • Sequence
    • Translate (new API)

Framework logic

  • Game
    • MediaAsset
    • Director
      • Screen
        • Layer
          • Animation
          • Button
          • Emitter
          • Map
          • Menu
          • SpineAnimation
          • Sprite
          • B2DWorld
            • B2DCircle
            • B2DRectangle
            • B2DPolygon
            • B2DLine
            • B2DBridge
            • B2DRope
            • B2DChainShape

Examples

For examples check the demos or take a look into the apidocs.

You can’t perform that action at this time.