Guest User

Untitled

a guest
Oct 6th, 2018
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package  {
  2.     import flash.display.MovieClip;
  3.     import flash.geom.*;
  4.     import flash.events.*;
  5.     import flash.display.*;
  6.     import flash.text.*;
  7.     import flash.ui.*;
  8.     import flash.net.URLLoader;
  9.     import flash.display.Loader;
  10.     import flash.net.URLRequest;
  11.     import fl.transitions.Photo;
  12.     public class Main extends MovieClip{
  13.         public function Main() {
  14.             addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
  15.             stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
  16.             stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
  17.             addEventListener(Event.ENTER_FRAME,moveJack);
  18.             stage.addEventListener(Event.ENTER_FRAME,aimJack);
  19.             stage.addEventListener(MouseEvent.MOUSE_DOWN,shootJack);
  20.             stage.addEventListener(Event.ENTER_FRAME,updateInfo);
  21.             stage.addEventListener(Event.ENTER_FRAME,moveWalls);
  22.         }
  23.         function addToStageHandler(e:Event):void
  24.         {
  25.             graphics.lineStyle(3,0x000000);
  26.             graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
  27.             this.initGame();
  28.             this.removeEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
  29.         }
  30.         function initGame()
  31.         {
  32.             house=new Array();
  33.             this.loadLevel("levels/level1.xml");trace(house.length);
  34.             jack = new Jack(stage);
  35.             this.addChild(jack);
  36.             jack.x=stage.stageWidth/2;
  37.             jack.y=stage.stageHeight/2;
  38.             this.addInfo();
  39.         }
  40.         public function loadLevel(s:String)
  41.         {
  42.             var xmlfile:XML;
  43.             var urlLoader:URLLoader=new URLLoader();
  44.             urlLoader.load(new URLRequest(s));
  45.             urlLoader.addEventListener(Event.COMPLETE,getValues);
  46.             function getValues(e:Event):void
  47.             {
  48.                 xmlfile=XML(e.target.data);
  49.                 for each (var object:XML in xmlfile.BODY)
  50.                 {
  51.                     var h:House=new House(object.XPOS,object.YPOS);
  52.                     house.push(h);
  53.                     addChild(h);
  54.                 }
  55.                 trace(house);
  56.             }
  57.         }
  58.         function moveWalls(event:Event)
  59.         {
  60.             for(var i:int=0;i<house.length;i++)
  61.             {
  62.                 if(jack.core.hitTestObject(house[i])==true)
  63.                 {
  64.                     if(keyLeftPressed==true)jack.x+=4;
  65.                     if(keyRightPressed==true)jack.x-=4;
  66.                     if(keyUpPressed==true)jack.y+=4;
  67.                     if(keyDownPressed==true)jack.y-=4;
  68.                 }
  69.             }
  70.         }
  71.         function addInfo()
  72.         {
  73.             infoBulletsCountNow = new TextField();
  74.             infoBulletsCountNow.mouseEnabled=false;
  75.             infoBulletsCountNow.text=String(jack.bulletsCountNow);
  76.             this.addChild(infoBulletsCountNow);
  77.             infoBulletsInBarrelsNow = new TextField();
  78.             infoBulletsInBarrelsNow.mouseEnabled=false;
  79.             infoBulletsInBarrelsNow.text=String(jack.bulletsInBarrelsNow);
  80.             this.addChild(infoBulletsInBarrelsNow);
  81.             infoBulletsInBarrelsNow.x+=20;
  82.         }
  83.         function keyDownFunction(e:KeyboardEvent)
  84.         {
  85.             if(e.keyCode==65)keyLeftPressed=true;
  86.             if(e.keyCode==68)keyRightPressed=true;
  87.             if(e.keyCode==87)keyUpPressed=true;
  88.             if(e.keyCode==83)keyDownPressed=true;
  89.         }
  90.         function keyUpFunction(e:KeyboardEvent)
  91.         {
  92.             if(e.keyCode==65)keyLeftPressed=false;
  93.             if(e.keyCode==68)keyRightPressed=false;
  94.             if(e.keyCode==87)keyUpPressed=false;
  95.             if(e.keyCode==83)keyDownPressed=false;
  96.         }
  97.         function moveJack(event:Event)
  98.         {
  99.             if ((keyLeftPressed == true) && (keyUpPressed == true))
  100.             {
  101.                 jack.x-=3;jack.y-=3;jackWalking=true;
  102.             }else
  103.             if ((keyUpPressed == true) && (keyRightPressed == true))
  104.             {
  105.                 jack.x+=3;jack.y-=3;jackWalking=true;
  106.             }else
  107.             if ((keyRightPressed == true) && (keyDownPressed == true))
  108.             {
  109.                 jack.x+=3;jack.y+=3;jackWalking=true;
  110.             }else
  111.             if ((keyDownPressed == true) && (keyLeftPressed == true))
  112.             {
  113.                 jack.x-=3;jack.y+=3;jackWalking=true;
  114.             }else
  115.             if (keyLeftPressed == true)
  116.             {
  117.                 jack.x-=4;jackWalking=true;
  118.             }else
  119.             if (keyRightPressed == true)
  120.             {
  121.                 jack.x+=4;jackWalking=true;
  122.             }else
  123.             if (keyUpPressed == true)
  124.             {
  125.                 jack.y-=4;jackWalking=true;
  126.             }else
  127.             if (keyDownPressed == true)
  128.             {
  129.                 jack.y+=4;jackWalking=true;
  130.             }
  131.             if(jackWalking==true)
  132.             {
  133.                 if(jack.feet.currentFrame==1)jack.feet.gotoAndPlay(2);
  134.             }else jack.feet.gotoAndStop(1);
  135.             if((keyLeftPressed==false)&&(keyRightPressed==false)&&(keyUpPressed==false)&&(keyDownPressed==false))jackWalking=false;
  136.         }
  137.         function aimJack(event:Event)
  138.         {
  139.             if(Math.pow(Math.pow((jack.x-this.mouseX),2)+Math.pow((jack.y-this.mouseY),2),1/2)>50)
  140.             {
  141.                 if((jack.x<this.mouseX)&&(jack.y>this.mouseY))dA = Math.atan((jack.y-this.mouseY)/(this.mouseX-jack.x))*180/Math.PI;
  142.                 if((jack.x>this.mouseX)&&(jack.y>this.mouseY))dA = Math.atan((-this.mouseX+jack.x)/(jack.y-this.mouseY))*180/Math.PI+90;
  143.                 if((jack.x>this.mouseX)&&(jack.y<this.mouseY))dA = Math.atan((-jack.y+this.mouseY)/(-this.mouseX+jack.x))*180/Math.PI+180;
  144.                 if((jack.x<this.mouseX)&&(jack.y<this.mouseY))dA = -Math.atan((-jack.y+this.mouseY)/(this.mouseX-jack.x))*180/Math.PI;
  145.                 jack.rotation=-dA+90;
  146.             }
  147.         }
  148.         function shootJack(event:MouseEvent)
  149.         {
  150.             if(jack.ableToShoot==true)
  151.             {
  152.                 jack.shoot();
  153.                 var R:int=500;
  154.                 var ox:Number;
  155.                 var oy:Number;
  156.                 ox=R*Math.cos(dA/180*Math.PI)+jack.x;
  157.                 oy=-R*Math.sin(dA/180*Math.PI)+jack.y;
  158.                 var randomX:Number=70*(Math.random()-Math.random());
  159.                 var randomY:Number=70*(Math.random()-Math.random());
  160.                 var x1,y1,x2,y2,x3,y3,x4,y4:int;
  161.                 var point1,point2:Point;
  162.                 point1=null;point2=null;
  163.                 var onlyPoint:Point=null;
  164.                 for(var i:int=0;i<house.length;i++)
  165.                 {
  166.                     x1=house[i].x1;y1=house[i].y1;x2=house[i].x2;y2=house[i].y2;x3=jack.x;y3=jack.y;x4=ox+randomX;y4=oy+randomY;
  167.                     if(point1==null)point1 = hitSide(x1,y1,x2,y2,x3,y3,x4,y4);
  168.                     x1=house[i].x2;y1=house[i].y2;x2=house[i].x3;y2=house[i].y3;x3=jack.x;y3=jack.y;x4=ox+randomX;y4=oy+randomY;
  169.                     if(point1==null)point1=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);else if((point1!=null)&&(point2==null))point2=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);
  170.                     x1=house[i].x3;y1=house[i].y3;x2=house[i].x4;y2=house[i].y4;x3=jack.x;y3=jack.y;x4=ox+randomX;y4=oy+randomY;
  171.                     if(point1==null)point1=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);else if((point1!=null)&&(point2==null))point2=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);
  172.                     x1=house[i].x4;y1=house[i].y4;x2=house[i].x1;y2=house[i].y1;x3=jack.x;y3=jack.y;x4=ox+randomX;y4=oy+randomY;
  173.                     if(point1==null)point1=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);else if((point1!=null)&&(point2==null))point2=hitSide(x1,y1,x2,y2,x3,y3,x4,y4);
  174.                     trace(point1+"  "+point2);
  175.                     if((point1!=null)&&(point2==null))onlyPoint=point1;else if((point1!=null)&&(point2!=null))
  176.                     if(Math.sqrt((x3 - point1.x)*(x3 - point1.x) + (y3 - point1.y)*(y3 - point1.y))>
  177.                      Math.sqrt((x3 - point2.x)*(x3 - point2.x) + (y3 - point2.y)*(y3 - point2.y)))
  178.                     onlyPoint=point2;else onlyPoint=point1;
  179.                 }
  180.                 if(onlyPoint!=null)
  181.                 this.graphics.drawCircle(onlyPoint.x,onlyPoint.y,1);
  182.                 else
  183.                 this.graphics.drawCircle(ox+randomX,oy+randomY,1);
  184.             }
  185.         }
  186.         function hitSide(x1,y1,x2,y2,x3,y3,x4,y4:int):Point
  187.         {
  188.             var point:Point;
  189.             var xCross:int;
  190.             var yCross:int;
  191.             if(x1==x2)
  192.             {
  193.                 xCross=x1;
  194.                 yCross=(x1-x4)/(x3-x4)*(y3-y4)+y4;
  195.             }
  196.             if(y1==y2)
  197.             {
  198.                 yCross=y1;
  199.                 xCross=x3-(x3-x4)/(y3-y4)*(y3-y1);
  200.             }
  201.             if(((((xCross>=x1)&&(xCross<=x2))||((xCross<=x1)&&(xCross>=x2)))&&(((xCross>=x3)&&(xCross<=x4))||((xCross<=x3)&&(xCross>=x4))))&&
  202.                ((((yCross>=y1)&&(yCross<=y2))||((yCross<=y1)&&(yCross>=y2)))&&(((yCross>=y3)&&(yCross<=y4))||((yCross<=y3)&&(yCross>=y4)))))
  203.             {
  204.                 point=new Point(xCross,yCross);
  205.             }
  206.             return point;
  207.         }
  208.         function updateInfo(event:Event)
  209.         {
  210.             this.infoBulletsCountNow.text=String(jack.bulletsCountNow);
  211.             this.infoBulletsInBarrelsNow.text=String(jack.bulletsInBarrelsNow);
  212.         }
  213.         var jack:Jack;
  214.         var keyDownCode:int;
  215.         var keyLeftPressed:Boolean=false;
  216.         var keyRightPressed:Boolean=false;
  217.         var keyUpPressed:Boolean=false;
  218.         var keyDownPressed:Boolean=false;
  219.         var jackWalking:Boolean=false;
  220.         public var infoBulletsCountNow:TextField;
  221.         public var infoBulletsInBarrelsNow:TextField;
  222.         var dA:Number;
  223.         var house:Array;
  224.     }
  225. }
Add Comment
Please, Sign In to add comment