Create a Flash game like Cirplosion – AS3 version

Some days ago I published Create a Flash game like Cirplosion using AS2, now it’s time to do it using AS3.

AS3 is becoming more and more popular so I think it’s time to give it more exposure.

This is the uncommented AS3 version of Cirplosion.

I would like you to compare it with AS2 one.

I am preparing a line-by-line explanation of all differences between AS2 and AS3 versions.

This will be very helpful for all people out there that are afraid to start coding AS3.

While AS2 is far from being obsolete (in my opinion), you can’t ignore it exists and it’s better than AS2

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
package {
	import flash.display.Sprite;
	import flash.ui.Mouse;
	import flash.events.*;
	public class cirplosionas3 extends Sprite {
		var grow_rate = 2;
		var enemies = 15;
		var enemy_speed = 3;
		var speed_add = 3;
		var addspeed_range = 50;
		var has_grown = false;
		var can_grow = false;
		var explode = false;
		var playersprite: player = new player();
		public function cirplosionas3() {
			Mouse.hide();
			for (x=1; x<=enemies; x++) {
				var enemysprite: enemy = new enemy();
				enemysprite.x = Math.random()*450+25;
				enemysprite.y = Math.random()*450+25;
				enemysprite.anglez = Math.random()*6.28318531;
				enemysprite.addspeed = 0;
				enemysprite.addEventListener(Event.ENTER_FRAME,move_enemy);
				addChild(enemysprite);
			}
			addChild(playersprite);
			addEventListener(Event.ENTER_FRAME,main);
			addEventListener(MouseEvent.MOUSE_DOWN,mousedown);
			addEventListener(MouseEvent.MOUSE_UP,mouseup);
		}
		public function move_enemy(event:Event) {
			var current_enemy:enemy = (event.currentTarget as enemy);
			var x_dist = 0;
			var y_dist = 0;
			var distance = 0;
			current_enemy.x+=(enemy_speed+current_enemy.addspeed)*Math.cos(current_enemy.anglez);
			current_enemy.y+=(enemy_speed+current_enemy.addspeed)*Math.sin(current_enemy.anglez);
			if (current_enemy.x>500) {
				current_enemy.x -= 500;
			}
			if (current_enemy.y>500) {
				current_enemy.y -= 500;
			}
			if (current_enemy.x<0) {
				current_enemy.x += 500;
			}
			if (current_enemy.y<0) {
				current_enemy.y += 500;
			}
			x_dist = current_enemy.x-playersprite.x;
			y_dist = current_enemy.y-playersprite.y;
			distance = x_dist*x_dist+y_dist*y_dist;
			if (distance<(current_enemy.width/2+playersprite.width/2)*(current_enemy.width/2+playersprite.width/2)) {
				if (can_grow) {
					reset_player();
				}
				if (explode) {
					current_enemy.removeEventListener(Event.ENTER_FRAME,move_enemy);
					removeChild(current_enemy);
				}
			}
			else {
				if (distance<(current_enemy.width/2+playersprite.width/2+addspeed_range)*(current_enemy.width/2+playersprite.width/2+addspeed_range) && explode) {
					current_enemy.anglez -= 3.14159265;
					current_enemy.addspeed = speed_add;
				}
			}
		}
		public function main(event:Event) {
			playersprite.x = mouseX;
			playersprite.y = mouseY;
			if (can_grow) {
				playersprite.width += grow_rate;
				playersprite.height += grow_rate;
				if (playersprite.x-playersprite.width/2<0) {
					reset_player();
				}
				if (playersprite.x+playersprite.width/2>500) {
					reset_player();
				}
				if (playersprite.y-playersprite.width/2<0) {
					reset_player();
				}
				if (playersprite.y+playersprite.width/2>500) {
					reset_player();
				}
			}
			if (explode) {
				reset_player();
			}
		}
		public function mousedown(event:Event) {
			if (!has_grown) {
				can_grow = true;
			}
			else {
				explode = true;
			}
		}
		public function mouseup(event:Event) {
			if (can_grow) {
				has_grown = true;
				can_grow = false;
				playersprite.alpha = 0.5;
			}
		}
		public function reset_player() {
			playersprite.alpha = 1;
			playersprite.width = 10;
			playersprite.height = 10;
			explode = false;
			has_grown = false;
			can_grow = false;
		}
	}
}

Download the source code… no need to publish the result because it’s the same as AS2 version.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading ... Loading ...
Flash Templates provided by Template Monster are pre-made web design products developed using Flash technology.
They can be easily customized to meet the unique requirements of your project.
Be my fan on Facebook and follow me on Twitter! Exclusive content for my Facebook fans and Twitter followers

This post has one comment

  1. Ninja Robot Dinosaur » Blog Archive » AS3 Boot Camp – Learn to program Flash games in 30 days

    on June 7, 2010 at 10:11 pm

    [...] Make a Game Like Cirplosion Build a Game Like Sproing Create a Game Like Snowflakes Chronotron Prototype How to Use a Flash Tutorial to Make Your Own Game [...]