Home Flash Primitive planes

Primitive planes на flash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package {
	import flash.display.*;
	import flash.events.*;
	import flash.utils.Timer;
	import flash.text.TextField;
 
	public class AirRaid extends MovieClip {
		private var aagun:AAGun;
		private var airplanes:Array;
		private var bullets:Array;
		public var leftArrow, rightArrow:Boolean;
		private var nextPlane:Timer;
		private var shotsLeft:int;
		private var shotsHit:int;
 
		public function startAirRaid() {
			// init score
			shotsLeft = 20;
			shotsHit = 0;
			showGameScore();
 
			// create gun
			aagun = new AAGun();
			addChild(aagun);
 
			// create object arrays
			airplanes = new Array();
			bullets = new Array();
 
			// listen for keyboard
			stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
			stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
 
			// look for collisions
			addEventListener(Event.ENTER_FRAME,checkForHits);
 
			// start planes flying
			setNextPlane();
		}
 
		public function setNextPlane() {
			nextPlane = new Timer(1000+Math.random()*1000,1);
			nextPlane.addEventListener(TimerEvent.TIMER_COMPLETE,newPlane);
			nextPlane.start();
		}
 
		public function newPlane(event:TimerEvent) {
			// random side, speed and altitude
			if (Math.random() > .5) {
				var side:String = "left";
			} else {
				side = "right";
			}
			var altitude:Number = Math.random()*50+20;
			var speed:Number = Math.random()*150+150;
 
			// create plane
			var p:Airplane = new Airplane(side,speed,altitude);
			addChild(p);
			airplanes.push(p);
 
			// set time for next plane
			setNextPlane();
		}
 
		// check for collisions
		public function checkForHits(event:Event) {
			for(var bulletNum:int=bullets.length-1;bulletNum>=0;bulletNum--){ 
				for (var airplaneNum:int=airplanes.length-1;airplaneNum>=0;airplaneNum--) {
					if (bullets[bulletNum].hitTestObject(airplanes[airplaneNum])) {
						airplanes[airplaneNum].planeHit();
						bullets[bulletNum].deleteBullet();
						shotsHit++;
						showGameScore();
						break;
					}
				}
			}
 
			if ((shotsLeft == 0) && (bullets.length == 0)) {
				endGame();
			}
		}
 
		// key pressed
		public function keyDownFunction(event:KeyboardEvent) {
			if (event.keyCode == 37) {
				leftArrow = true;
			} else if (event.keyCode == 39) {
				rightArrow = true;
			} else if (event.keyCode == 32) {
				fireBullet();
			}
		}
 
		// key lifted
		public function keyUpFunction(event:KeyboardEvent) {
			if (event.keyCode == 37) {
				leftArrow = false;
			} else if (event.keyCode == 39) {
				rightArrow = false;
			}
		}
 
		// new bullet created
		public function fireBullet() {
			if (shotsLeft <= 0) return;
			var b:Bullet = new Bullet(aagun.x,aagun.y,-300);
			addChild(b);
			bullets.push(b);
			shotsLeft--;
			showGameScore();
		}
 
		public function showGameScore() {
			showScore.text = String("Score: "+shotsHit);
			showShots.text = String("Shots Left: "+shotsLeft);
		}
 
		// take a plane from the array
		public function removePlane(plane:Airplane) {
			for(var i in airplanes) {
				if (airplanes[i] == plane) {
					airplanes.splice(i,1);
					break;
				}
			}
		}
 
		// take a bullet from the array
		public function removeBullet(bullet:Bullet) {
			for(var i in bullets) {
				if (bullets[i] == bullet) {
					bullets.splice(i,1);
					break;
				}
			}
		}
 
		// game is over, clear movie clips
		public function endGame() {
			// remove planes
			for(var i:int=airplanes.length-1;i>=0;i--) {
				airplanes[i].deletePlane();
			}
			airplanes = null;
 
			aagun.deleteGun();
			aagun = null;
 
			stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
			stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
			removeEventListener(Event.ENTER_FRAME,checkForHits);
 
			nextPlane.stop();
			nextPlane = null;
 
			gotoAndStop("gameover");
		}
 
	}
}
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package {
	import flash.display.*;
	import flash.events.*;
	import flash.utils.getTimer;
 
	public class Bullet extends MovieClip {
		private var dy:Number; / / Vertical speed
		private var lastTime:int;
 
		public function Bullet(x,y:Number, Speed: Number) {
			/ / Set start position
			this.x = x;
			this.y = y;
			/ / Get speed
			dy = Speed;
			/ / Set up animation
			lastTime = getTimer();
			addEventListener(Event.ENTER_FRAME, MoveBullet);
		}
 
		public function moveBullet(event:Event) {
			/ / Get time passed
			var timePassed:int = getTimer()-lastTime;
			lastTime += TimePassed;
 
			/ / Move bullet
			this.y += Dy*timePassed/1000;
 
			/ / Bullet past top of screen
			if (this.y < 0) {
				deleteBullet();
			}
 
		}
 
		
		public function deleteBullet() {
			MovieClip(parent). RemoveBullet(this);
			parent.removeChild(this);
			removeEventListener(Event.ENTER_FRAME, MoveBullet);
		}
 
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package {
	import flash.display.*;
	import flash.events.*;
	import flash.utils.getTimer;
 
	public class Airplane extends MovieClip {
		private var dx:Number; / / Speed ​​and direction
		private var lastTime:int; / / Animation time
 
		public function Airplane(side:String, Speed:Number, Altitude:Number) {
			if (side == "Left") {
				this.x = -50; / / Start to the left
				dx = Speed; / / Fly left to right
				this.scaleX = -1; / / Reverse
			} else if (side == "Right") {
				this.x = 600; / / Start to the right
				dx = -speed; / / Fly right to left
				this.scaleX = 1; / / Not reverse
			}
			this.y = Altitude; / / Vertical position
 
			this.gotoAndStop(Math.floor(Math.random()*5+1));
			/ / Set up animation
			addEventListener(Event.ENTER_FRAME, MovePlane);
			lastTime = getTimer();
		}
 
		public function movePlane(event:Event) {
			/ / Get time passed
			var timePassed:int = getTimer()-lastTime;
			lastTime += TimePassed;
 
			/ / Move plane
			this.x += Dx*timePassed/1000;
 
			/ / Check to see if off screen
			if ((dx < 0) & & (x < -50)) {
				deletePlane();
			} else if ((dx > 0) & & (x > 600)) {
				deletePlane();
			}
 
		}
 
		/ / Plane hit, show explosion
		public function planeHit() {
			removeEventListener(Event.ENTER_FRAME, MovePlane);
			MovieClip(parent). RemovePlane(this);
			gotoAndPlay("Explode");
		}
 
		
		public function deletePlane() {
			removeEventListener(Event.ENTER_FRAME, MovePlane);
			MovieClip(parent). RemovePlane(this);
			parent.removeChild(this);
		}
 
	}
}
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package {
	import flash.display.*;
	import flash.events.*;
	import flash.utils.getTimer;
 
	public class AAGun extends MovieClip {
		static const speed:Number = 150.0;
		private var lastTime:int; / / Animation time
 
		public function AAGun() {
			/ / Initial location of gun
			this.x = 275;
			this.y = 340;
 
			/ / Movement
			addEventListener(Event.ENTER_FRAME, MoveGun);
		}
 
		public function moveGun(event:Event) {
			/ / Get time difference
			var timePassed:int = getTimer()-lastTime;
			lastTime += TimePassed;
 
			/ / Current position
			var newx = this.x;
 
			/ / Move to the left
			if (MovieClip(parent). LeftArrow) {
				newx -= Speed*timePassed/1000;
			}
 
			/ / Move to the right
			if (MovieClip(parent). RightArrow) {
				newx += Speed*timePassed/1000;
			}
 
			/ / Check boundaries
			if (newx < 10) newx = 10;
			if (newx > 540) newx = 540;
 
			/ / Reposition
			this.x = Newx;
		}
 
		
		public function deleteGun() {
			parent.removeChild(this);
			removeEventListener(Event.ENTER_FRAME, MoveGun);
		}
	}
}

Nice Ajax Poll

Which one of my extensions is the best?

Statistics

Advertisement