-
Notifications
You must be signed in to change notification settings - Fork 1
/
stackBullet.as
90 lines (90 loc) · 2.71 KB
/
stackBullet.as
1
package { import flash.display.*; import flash.geom.Rectangle; import flash.events.*; import bar_mc; import GameClass; import flash.utils.getDefinitionByName; import Comman; class stackBullet extends Comman { public var temp:int; public var hit:Boolean; public var isUser:Boolean; public var speed:Number; public var clipar:Array; public var shootVal:Number; public function stack() { temp=15; mainClass=this.root as MovieClip; hit=true; } override public function parent_(e:Event):void { mainClass=this.root as MovieClip; super.parent_(e); } override public function loopUntilRemoved(e:Event):void { if (stage != null && ! mainClass.main_mc.gamePause) { if (this != null) { var angle:Number=(e.currentTarget.rotation + 90) * Math.PI / 180; var xmov:Number=0; var ymov:Number=0; if (!isUser) { xmov=Math.sin(angle) * 10; ymov=Math.cos(angle) * 10; } else { xmov=Math.sin(angle) * speed; ymov=Math.cos(angle) * speed; } if (e.currentTarget.scale > 200) { e.currentTarget.temp*= -1; } if (e.currentTarget.scale <= 0) { if (isUser) { removeChild(e.currentTarget as MovieClip); } } if (e.currentTarget.x > stage.stageWidth || e.currentTarget.y > stage.stageHeight - 60 || e.currentTarget.x < 0 || e.currentTarget.y < 0) { var mc:MovieClip=e.currentTarget.parent as MovieClip; if (mc != null) { mc.removeChild(e.currentTarget as MovieClip); } } var looplen:int=clipar.length; for (var count:Number=0; count < looplen; count++) { var clip_mc:MovieClip=clipar[count]; var rect:Rectangle= new Rectangle(0,0,0,0); if (! isUser) { rect=getCollisionRect(e.currentTarget as DisplayObject,clip_mc,mainClass.main_mc,true,255); } else { rect=getCollisionRect(e.currentTarget as DisplayObject,clip_mc,clip_mc.parent,true,255); } if (rect.width != 0 || rect.height != 0 && e.currentTarget.hit) { xmov=0; ymov=0; if (! isUser) { if (! mainClass.main_mc.power_Shield) { clip_mc.per-= e.currentTarget.shootVal; } } else { clip_mc.per-= clip_mc.reduceVal; } e.currentTarget.hit=false; e.currentTarget.gotoAndPlay(2); } } if (e.currentTarget.hit) { e.currentTarget.x+= xmov; e.currentTarget.y-= ymov; } } else { var mc_:MovieClip=e.currentTarget.parent as MovieClip; if (mc_ != null) { //e.currentTarget.removeEventListener(Event.ENTER_FRAME,doit); e.currentTarget.dispatchEvent(new Event(PARENT_REMOVED)); mc_.removeChild(e.currentTarget as MovieClip); } } } } }}