/** * @author Inateno / http://inateno.com / http://dreamirl.com */ /** * @constructor BoxRenderer * @augments Renderer * @class draw a a colored square<br> * checkout Renderer for standard parameters * @example var itsJustABox = new DE.GameObject( { * x: 500, y: 500, * renderer: new DE.BoxRenderer( { "fillColor": "red" }, 250, 100 ) * } ); */ define( [ 'DE.Renderer', 'DE.BoxRenderer.render', 'DE.CONFIG', 'DE.Sizes' ], function( Renderer, BoxRender, CONFIG, Sizes ) { function BoxRenderer( param, width, height ) { Renderer.call( this, param ); this.sizes = new Sizes( width, height, 1, 1, this ); this.sizes._center(); /*** * @fillIt ***/ this.fillIt = function( ctx, physicRatio, ratioz ) { ctx.fillStyle = this.fillColor; ctx.fillRect( this.localPosition.x * physicRatio >> 0 , this.localPosition.y * physicRatio >> 0 , this.sizes.width * physicRatio * ratioz >> 0 , this.sizes.height * physicRatio * ratioz >> 0 ); } /*** * @strokeIt ***/ this.strokeIt = function( ctx, physicRatio, ratioz ) { ctx.strokeStyle = this.strokeColor; ctx.strokeRect( this.localPosition.x * physicRatio >> 0 , this.localPosition.y * physicRatio >> 0 , this.sizes.width * physicRatio * ratioz >> 0 , this.sizes.height * physicRatio * ratioz >> 0 ); } /*** * @changeWidth ***/ this.setWidth = function( newWidth ) { this.sizes.setSizes( newWidth, this.sizes.height ); } /*** * @changeHeight ***/ this.setHeight = function( newHeight ) { this.sizes.setSizes( this.sizes.width, newHeight ); } /*** * @changeSizes ***/ this.setSizes = function( newWidth, newHeight ) { this.sizes.setSizes( newWidth, newHeight ); } } BoxRenderer.prototype = new Renderer(); BoxRenderer.prototype.constructor = BoxRenderer; BoxRenderer.prototype.supr = Renderer.prototype; BoxRenderer.prototype.DEName = "BoxRenderer"; BoxRenderer.prototype.render = BoxRender; CONFIG.debug.log( "BoxRenderer loaded", 3 ); return BoxRenderer; } );