home *** CD-ROM | disk | FTP | other *** search
- class Chaf
- {
- var position;
- var velocity;
- var angle;
- var frame;
- var frameExp;
- var bExplode;
- var flightTime;
- var bmpChaf;
- var bmpExplode;
- var bmpCanvas;
- var screenPos;
- function Chaf(pos, vel)
- {
- this.position = pos.clone();
- this.velocity = vel.clone();
- this.angle = 0;
- this.frame = 0;
- this.frameExp = 0;
- this.bExplode = false;
- this.flightTime = 90;
- this.bmpChaf = flash.display.BitmapData.loadBitmap("chaf");
- this.bmpExplode = flash.display.BitmapData.loadBitmap("explosion0");
- this.bmpCanvas = Game.bmpShots;
- }
- function getPosition(Void)
- {
- return this.position.clone();
- }
- function step(Void)
- {
- if(!this.bExplode)
- {
- this.angle += 0.5 * Math.random();
- this.velocity.y -= 0.02;
- this.velocity.x *= 0.97;
- this.velocity.y *= 0.97;
- this.position.x += this.velocity.x;
- this.position.y += this.velocity.y;
- this.frame = this.frame + 1;
- this.frame %= 4;
- if(this.flightTime-- <= 0 || this.position.y < 0)
- {
- Game.getInstance().removeChaf(this);
- }
- }
- }
- function draw(leftEdge)
- {
- var _loc4_ = this.position.x - leftEdge + 10 * Math.cos(this.angle);
- var _loc3_ = this.position.y + 5 * Math.sin(this.angle);
- this.screenPos = new flash.geom.Point(_loc4_,_loc3_);
- if(!this.bExplode)
- {
- var _loc2_ = new flash.display.BitmapData(12,12,true,0);
- _loc2_.copyPixels(this.bmpChaf,new flash.geom.Rectangle(0,Math.floor(this.frame / 2) * 6,6,6),new flash.geom.Point(3,3),null,null,true);
- var _loc5_ = new flash.filters.BlurFilter(2,2,2);
- _loc2_.applyFilter(_loc2_,_loc2_.rectangle,new flash.geom.Point(0,0),_loc5_);
- _loc2_.colorTransform(_loc2_.rectangle,new flash.geom.ColorTransform(1,1,1,(this.flightTime + 50) / 90,0,0,0,0));
- this.bmpCanvas.copyPixels(_loc2_,_loc2_.rectangle,new flash.geom.Point(this.screenPos.x - 6,Game.screenH - (this.screenPos.y + 6)),null,null,true);
- }
- else
- {
- _loc4_ = this.position.x - leftEdge + 10 * Math.cos(this.angle);
- _loc3_ = this.position.y + 5 * Math.sin(this.angle);
- this.screenPos = new flash.geom.Point(_loc4_,_loc3_);
- this.drawExplosion(this.screenPos,true);
- }
- }
- function drawExplosion(pos, bRemove)
- {
- var _loc3_ = _root.attachMovie("explosion1","mcExp",_root.getNextHighestDepth());
- _loc3_.gotoAndStop(this.frameExp + 1);
- var _loc4_ = new flash.geom.Matrix();
- _loc4_.translate(pos.x,Game.screenH - pos.y);
- this.bmpCanvas.draw(_loc3_,_loc4_,null,null,null,true);
- _loc3_.removeMovieClip();
- this.frameExp = this.frameExp + 1;
- if(this.frameExp == 17)
- {
- if(bRemove)
- {
- this.onEndDeadAnim();
- }
- }
- }
- function onEndDeadAnim(Void)
- {
- Game.getInstance().removeChaf(this);
- }
- function getDamage(damage)
- {
- Sounds.playSound("explsion");
- this.bExplode = true;
- }
- }
-