Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.display.MovieClip;
- import flash.geom.*;
- import flash.events.*;
- import flash.display.*;
- import flash.text.*;
- import flash.ui.*;
- import flash.net.URLLoader;
- import flash.display.Loader;
- import flash.net.URLRequest;
- import fl.transitions.Photo;
- public class Main extends MovieClip{
- public function Main() {
- addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
- stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
- stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
- addEventListener(Event.ENTER_FRAME,moveJack);
- stage.addEventListener(Event.ENTER_FRAME,aimJack);
- stage.addEventListener(MouseEvent.MOUSE_DOWN,shootJack);
- stage.addEventListener(Event.ENTER_FRAME,updateInfo);
- stage.addEventListener(Event.ENTER_FRAME,moveWalls);
- }
- function addToStageHandler(e:Event):void
- {
- graphics.lineStyle(3,0x000000);
- graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
- this.initGame();
- this.removeEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
- }
- function initGame()
- {
- house=new Array();
- this.loadLevel("levels/level1.xml");trace(house.length);
- jack = new Jack(stage);
- this.addChild(jack);
- jack.x=stage.stageWidth/2;
- jack.y=stage.stageHeight/2;
- this.addInfo();
- }
- public function loadLevel(s:String)
- {
- var xmlfile:XML;
- var urlLoader:URLLoader=new URLLoader();
- urlLoader.load(new URLRequest(s));
- urlLoader.addEventListener(Event.COMPLETE,getValues);
- function getValues(e:Event):void
- {
- xmlfile=XML(e.target.data);
- for each (var object:XML in xmlfile.BODY)
- {
- var h:House=new House(object.XPOS,object.YPOS);
- house.push(h);
- addChild(h);
- }
- trace(house);
- }
- }
- function moveWalls(event:Event)
- {
- for(var i:int=0;i<house.length;i++)
- {
- if(jack.core.hitTestObject(house[i])==true)
- {
- if(keyLeftPressed==true)jack.x+=4;
- if(keyRightPressed==true)jack.x-=4;
- if(keyUpPressed==true)jack.y+=4;
- if(keyDownPressed==true)jack.y-=4;
- }
- }
- }
- function addInfo()
- {
- infoBulletsCountNow = new TextField();
- infoBulletsCountNow.mouseEnabled=false;
- infoBulletsCountNow.text=String(jack.bulletsCountNow);
- this.addChild(infoBulletsCountNow);
- infoBulletsInBarrelsNow = new TextField();
- infoBulletsInBarrelsNow.mouseEnabled=false;
- infoBulletsInBarrelsNow.text=String(jack.bulletsInBarrelsNow);
- this.addChild(infoBulletsInBarrelsNow);
- infoBulletsInBarrelsNow.x+=20;
- }
- function keyDownFunction(e:KeyboardEvent)
- {
- if(e.keyCode==65)keyLeftPressed=true;
- if(e.keyCode==68)keyRightPressed=true;
- if(e.keyCode==87)keyUpPressed=true;
- if(e.keyCode==83)keyDownPressed=true;
- }
- function keyUpFunction(e:KeyboardEvent)
- {
- if(e.keyCode==65)keyLeftPressed=false;
- if(e.keyCode==68)keyRightPressed=false;
- if(e.keyCode==87)keyUpPressed=false;
- if(e.keyCode==83)keyDownPressed=false;
- }
- function moveJack(event:Event)
- {
- if ((keyLeftPressed == true) && (keyUpPressed == true))
- {
- jack.x-=3;jack.y-=3;jackWalking=true;
- }else
- if ((keyUpPressed == true) && (keyRightPressed == true))
- {
- jack.x+=3;jack.y-=3;jackWalking=true;
- }else
- if ((keyRightPressed == true) && (keyDownPressed == true))
- {
- jack.x+=3;jack.y+=3;jackWalking=true;
- }else
- if ((keyDownPressed == true) && (keyLeftPressed == true))
- {
- jack.x-=3;jack.y+=3;jackWalking=true;
- }else
- if (keyLeftPressed == true)
- {
- jack.x-=4;jackWalking=true;
- }else
- if (keyRightPressed == true)
- {
- jack.x+=4;jackWalking=true;
- }else
- if (keyUpPressed == true)
- {
- jack.y-=4;jackWalking=true;
- }else
- if (keyDownPressed == true)
- {
- jack.y+=4;jackWalking=true;
- }
- if(jackWalking==true)
- {
- if(jack.feet.currentFrame==1)jack.feet.gotoAndPlay(2);
- }else jack.feet.gotoAndStop(1);
- if((keyLeftPressed==false)&&(keyRightPressed==false)&&(keyUpPressed==false)&&(keyDownPressed==false))jackWalking=false;
- }
- function aimJack(event:Event)
- {
- if(Math.pow(Math.pow((jack.x-this.mouseX),2)+Math.pow((jack.y-this.mouseY),2),1/2)>50)
- {
- if((jack.x<this.mouseX)&&(jack.y>this.mouseY))dA = Math.atan((jack.y-this.mouseY)/(this.mouseX-jack.x))*180/Math.PI;
- if((jack.x>this.mouseX)&&(jack.y>this.mouseY))dA = Math.atan((-this.mouseX+jack.x)/(jack.y-this.mouseY))*180/Math.PI+90;
- if((jack.x>this.mouseX)&&(jack.y<this.mouseY))dA = Math.atan((-jack.y+this.mouseY)/(-this.mouseX+jack.x))*180/Math.PI+180;
- if((jack.x<this.mouseX)&&(jack.y<this.mouseY))dA = -Math.atan((-jack.y+this.mouseY)/(this.mouseX-jack.x))*180/Math.PI;
- jack.rotation=-dA+90;
- }
- }
- function shootJack(event:MouseEvent)
- {
- if(jack.ableToShoot==true)
- {
- jack.shoot();
- var R:int=500;
- var ox:Number;
- var oy:Number;
- ox=R*Math.cos(dA/180*Math.PI)+jack.x;
- oy=-R*Math.sin(dA/180*Math.PI)+jack.y;
- var randomX:Number=70*(Math.random()-Math.random());
- var randomY:Number=70*(Math.random()-Math.random());
- var x1,y1,x2,y2,x3,y3,x4,y4:int;
- var point1,point2:Point;
- point1=null;point2=null;
- var onlyPoint:Point=null;
- for(var i:int=0;i<house.length;i++)
- {
- 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;
- if(point1==null)point1 = hitSide(x1,y1,x2,y2,x3,y3,x4,y4);
- 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;
- 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);
- 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;
- 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);
- 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;
- 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);
- trace(point1+" "+point2);
- if((point1!=null)&&(point2==null))onlyPoint=point1;else if((point1!=null)&&(point2!=null))
- if(Math.sqrt((x3 - point1.x)*(x3 - point1.x) + (y3 - point1.y)*(y3 - point1.y))>
- Math.sqrt((x3 - point2.x)*(x3 - point2.x) + (y3 - point2.y)*(y3 - point2.y)))
- onlyPoint=point2;else onlyPoint=point1;
- }
- if(onlyPoint!=null)
- this.graphics.drawCircle(onlyPoint.x,onlyPoint.y,1);
- else
- this.graphics.drawCircle(ox+randomX,oy+randomY,1);
- }
- }
- function hitSide(x1,y1,x2,y2,x3,y3,x4,y4:int):Point
- {
- var point:Point;
- var xCross:int;
- var yCross:int;
- if(x1==x2)
- {
- xCross=x1;
- yCross=(x1-x4)/(x3-x4)*(y3-y4)+y4;
- }
- if(y1==y2)
- {
- yCross=y1;
- xCross=x3-(x3-x4)/(y3-y4)*(y3-y1);
- }
- if(((((xCross>=x1)&&(xCross<=x2))||((xCross<=x1)&&(xCross>=x2)))&&(((xCross>=x3)&&(xCross<=x4))||((xCross<=x3)&&(xCross>=x4))))&&
- ((((yCross>=y1)&&(yCross<=y2))||((yCross<=y1)&&(yCross>=y2)))&&(((yCross>=y3)&&(yCross<=y4))||((yCross<=y3)&&(yCross>=y4)))))
- {
- point=new Point(xCross,yCross);
- }
- return point;
- }
- function updateInfo(event:Event)
- {
- this.infoBulletsCountNow.text=String(jack.bulletsCountNow);
- this.infoBulletsInBarrelsNow.text=String(jack.bulletsInBarrelsNow);
- }
- var jack:Jack;
- var keyDownCode:int;
- var keyLeftPressed:Boolean=false;
- var keyRightPressed:Boolean=false;
- var keyUpPressed:Boolean=false;
- var keyDownPressed:Boolean=false;
- var jackWalking:Boolean=false;
- public var infoBulletsCountNow:TextField;
- public var infoBulletsInBarrelsNow:TextField;
- var dA:Number;
- var house:Array;
- }
- }
Add Comment
Please, Sign In to add comment