When Elasticity meets Bloons
Ok, so we have two games: Elasticity and Bloons.
The first, is a game I talked about in Controlling a ball like in Flash Elasticity game tutorial, and I suggest you to read it, while the second is a game we all use to play here on planet Earth.
Despite the psychedelic feeling I gave to the graphics in this prototype, merging two game genres like Bloons and Elasticity can lead to some interesting gameplay concepts.
So the prototype brings the “engine” of Elasticity and some targets to destroy like in Bloons.
No tutorial yet but only a commented actionscript
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 | attachMovie("newmouse", "newmouse", _root.getNextHighestDepth());
attachMovie("circle", "circle", _root.getNextHighestDepth(), {_x:60, _y:350});
attachMovie("crosshair", "crosshair", _root.getNextHighestDepth());
attachMovie("ball", "ball", _root.getNextHighestDepth());
Mouse.hide();
// friction
friction = 0.9;
// multiplier to scale down ball speed
speed_scale = 0.1;
// ball x and y speed
xspeed = 0;
yspeed = 0;
// flag to determine if the ball is "free" (I released it) or not
free_ball = false;
// gravity is zero at the beginning
gravity = 0;
// this part has been already explained
newmouse.onEnterFrame = function() {
this._x = _root._xmouse;
this._y = _root._ymouse;
};
crosshair.onEnterFrame = function() {
difference = (circle._width-crosshair._width)/2;
this._x = _root._xmouse;
this._y = _root._ymouse;
dist_x = this._x-circle._x;
dist_y = this._y-circle._y;
distance = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
if (distance>difference) {
angle = Math.atan2(dist_y, dist_x);
this._x = circle._x+difference*Math.cos(angle);
this._y = circle._y+difference*Math.sin(angle);
}
};
ball.onEnterFrame = function() {
if (!free_ball) {
dist_x = (crosshair._x-this._x)*speed_scale;
dist_y = (crosshair._y-this._y)*speed_scale;
xspeed += dist_x;
yspeed += dist_y;
} else {
if (this._y>500) {
free_ball = false;
gravity = 0;
xspeed = 0;
yspeed = 0;
this._x = crosshair._x;
this._y = crosshair._y;
friction = 0.9;
}
}
xspeed *= friction;
yspeed *= friction;
yspeed += gravity;
this._x += xspeed;
this._y += yspeed;
};
// if the player release the mouse, then
// the ball is set to free
// the friction is lower and
// the gravity is bigger
_root.onMouseDown = function() {
free_ball = true;
friction = 0.99;
gravity = 0.3;
};
// adding some "bloons"...
for (x=0; x<8; x++) {
for (y=0; y<8; y++) {
bloon = _root.attachMovie("bubble", "bubble_"+x, _root.getNextHighestDepth(), {_x:250+x*30, _y:30+y*30});
bloon.die = false;
bloon.onEnterFrame = function() {
// actions to perform if the bloon is "alive"
if (!this.die) {
dist_x = this._x-ball._x;
dist_y = this._y-ball._y;
distance_from_ball = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
// checking if the ball hits the bloon
if (distance_from_ball<(this._width+ball._width)/2) {
this.die = true;
}
// actions to perform if the bloon is "dead"
} else {
this._width -= 1;
this._height -= 1;
this._alpha -= 2;
if (this._alpha == 0) {
this.removeMovieClip();
}
}
};
}
} |
And this is the result, swing the ball with the mouse and press mouse button to throw it against the “bloons”.
How many shoots do you need to bloon… pardon blow all balls away?
They can be easily customized to meet the unique requirements of your project.
12 Responses to “When Elasticity meets Bloons”
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.88/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)








nice I can realy use this in my games
Hello Emanuele Feronato
ive been following up on these tutorials for a while and i wanted to email you what i have produced but i have forgotten your email.
And i love this game so far such a simple engine yet so much fun.
This is an awesome idea!
Make some nice graphics and levels and you may get the same popularity as Bloons!
Yeah, and get a good sponsor :) Then you rock! Good concept!
Great concept! It will be game more popular than circle chain perhaps…
Tom: mail it at info[at]emanueleferonato.com
Emanuele your homepage is still crashing my computer. I came to see if you’d replied to my comment, and the same message came up. Then I read your comment, went back to the homepage, and it crashed again. I had to close firefox and restart the session, then it crashed again, but I just managed to make it here to report this. I think it may be one of your adverts…
@Ed : I think that the problem is caused by too many flash on the main page (sometimes I get a pop-up that asks me to ’stop’ the scripts running on that page, which should be caused by the flash ‘examples’ showing on the main page). Other than that, it may be caused by too many things to load on a page too.
Very nice game idea! Wish I thought of it myself.
Great Game! It’s fun and looks promising.
Just so Ed doesn’t look like he’s making this up, I have had Firefox crash when visiting here a few times recently as well.
Great site though, I check daily :).
… distance test between the mouse and circle then move the inner circle???
the game says the ball only moves when touching the square.