Create a Flash game like Cirplosion – AS3 version
August 27, 2008 by Emanuele Feronato
Filed Under Actionscript 3, Flash, Game design • Leave a Comment
Filed Under Actionscript 3, Flash, Game design • Leave a Comment
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.
» 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.
They can be easily customized to meet the unique requirements of your project.
Leave a Reply
- Get up to $100,000 for your next Flash game with Mochi GAME Developer Fund
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines – 17 lines version
- Sell sitelocked version of your Flash games and even .fla sources to Free Online Games
- Protect your work from ActionScript code theft with SWF Protector
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines
- Understanding Box2D’s one-way platforms, aka CLOUDS
- Triqui MochiAds Arcade plugin for WordPress upgraded to 1.2
- Box2D Flash game creation tutorial – part 2
- 11 Flash isometric engines you can use in your games
- Monetize your Flash games with GamesChart
- Create a Lightbox effect only with CSS - no javascript needed
- Flash game creation tutorial - part 1
- Create a Flash Racing Game Tutorial
- Flash game creation tutorial - part 2
- Make a Flash game like Flash Element Tower Defense - Part 2
- Flash game creation tutorial - part 3
- Make a Flash game like Flash Element Tower Defense - Part 1
- Create a flash draw game like Line Rider or others - part 1
- Triqui MochiAds Arcade plugin for WordPress official page
- Create a flash artillery game - step 1
- Flash game creation tutorial – part 5.2 (4.87/5)
- Create a flash artillery game – step 1 (4.79/5)
- Create a Flash Racing Game Tutorial (4.76/5)
- Create a flash artillery game – step 2 (4.74/5)
- Create a survival horror game in Flash tutorial – part 1 (4.73/5)
- Creation of a Flash arcade site using WordPress – step 2 (4.73/5)
- Flash game creation tutorial – part 2 (4.71/5)
- Flash game creation tutorial – part 1 (4.70/5)
- Create a flash draw game like Line Rider or others – part 1 (4.69/5)
- Creation of a platform game with Flash – step 2 (4.68/5)






