/** * @author Inateno / http://inateno.com / http://dreamirl.com */ /** * @constructor Collider * @class default Collider Class<br> * don't use this one, but you can inherits from if you want to create a custom Collider * * @param {object} params - parameters, (gameObject, type, localPosition, isTrigger) */ define( [ 'DE.Vector2', 'DE.CONFIG' ], function( Vector2, CONFIG ) { function Collider( params ) { params = params || {}; this.type = params.type || undefined; // a collider without gameObject should provide bug if you use it /** * The collider's gameObject, if there isn't, you'll not be able to call CollisionSystem with this collider * @type GameObject */ this.gameObject = params.gameObject || undefined; this.localPosition = params.localPosition || new Vector2( params.offsetX || params.offsetLeft || 0, params.offsetY || params.offsetTop || 0 ); // not sure about this 3 attributes, will probably change this.isColliding = false; this.isTrigger = params.isTrigger || false; this.collideWith = new Array(); // not sure /**** * getRealPosition@void return the real gameObject position + this offsets a collider position, is always at the center of this collider */ this.getRealPosition = function() { var pos = this.gameObject.getPos(); pos.x += this.localPosition.x; pos.y += this.localPosition.y; return pos; } /**** * debugRender@void used by the engine if you provided a DEBUG_LEVEL > 1 before create your colliders, the colliders create a debugBuffer, and if the DEBUG_LEVEL > 1, the gameObject call the debugRender Helper: so if you create Colliders before set DEBUG_LEVEL, you wont see it */ this.debugRender = function( ctx, physicRatio, ratioz ) { if ( !this.debugBuffer ) return; ctx.drawImage( this.debugBuffer.canvas , this.localPosition.x * physicRatio * ratioz >> 0 , this.localPosition.y * physicRatio * ratioz >> 0 , this.debugBuffer.canvas.width * physicRatio * ratioz >> 0 , this.debugBuffer.canvas.height * physicRatio * ratioz >> 0 ); } } Collider.prototype.DEName = "Collider"; CONFIG.debug.log( "Collider loaded", 3 ); return Collider; } );