1 |
- var ImagePainter=function(e,t,n){var r=this;this.image=new Image,this.image.src=e,this.updateSize=!1,t&&(this.width=t),n&&(this.height=n),this.image.onload=function(e){r.width=r.width?r.width:this.width,r.height=r.height?r.height:this.height}};ImagePainter.prototype={image:undefined,paint:function(e,t){this.image!==undefined&&(this.image.complete?(this.updateSize||(e.width=this.width,e.height=this.height,this.updateSize=!this.updateSize),t.drawImage(this.image,e.left,e.top,e.width,e.height)):t.drawImage(this.image,e.left,e.top,e.width,e.height))}},SpriteSheetPainter=function(e){this.cells=e},SpriteSheetPainter.prototype={cells:[],cellIndex:0,advance:function(){this.cellIndex==this.cells.length-1?this.cellIndex=0:this.cellIndex++},paint:function(e,t){var n=this.cells[this.cellIndex];t.drawImage(spritesheet,n.left,n.top,n.width,n.height,e.left,e.top,n.width,n.height)}};var SpriteAnimator=function(e,t){this.painters=e,t&&(this.elapsedCallback=t)};SpriteAnimator.prototype={painters:[],duration:1e3,startTime:0,index:0,elapsedCallback:undefined,end:function(e,t){e.animating=!1,this.elapsedCallback?this.elapsedCallback(e):e.painter=t},start:function(e,t){var n=+(new Date)+t,r=t/this.painters.length,i=undefined,s=this,o=e.painter;this.index=0,e.animating=!0,e.painter=this.painters[this.index],i=setInterval(function(){+(new Date)<n?e.painter=s.painters[++s.index]:(s.end(e,o),clearInterval(i))},r)}};var Sprite=function(e,t,n){return e!==undefined&&(this.name=e),t!==undefined&&(this.painter=t),n!==undefined&&(this.behaviors=n),this};Sprite.prototype={left:0,top:0,width:280,height:194,velocityX:0,velocityY:0,visible:!0,animating:!1,painter:undefined,behaviors:[],paint:function(e){this.painter!==undefined&&this.visible&&this.painter.paint(this,e)},update:function(e,t){for(var n=this.behaviors.length;n>0;--n)this.behaviors[n-1].execute(this,e,t)}};
|