Prototype of a Flash game like Floaty Light
Posted by Emanuele Feronato on 05/7/08 in Actionscript 2, Flash, Game design, Tutorials
Do we really need another "move a ball in some way from A to B avoiding C" game?
Noooooooo... but it seems two or three people still like this kind of games, so the new torture branded Game Garage is Floaty Light.
Just kidding, of course.
I made this prototype using the gravity and speed as described in the Flash game creation tutorial - part 1 post, the collision detection as shown in the Create a flash draw game like Line Rider or others - part 2 post and the control system already seen at A new player control concept, with only a minor change.
As said, nothing new, but it's an interesting concept anyway
-
_root.attachMovie("ball", "ball", _root.getNextHighestDepth(), {_x:50, _y:50});
-
_root.attachMovie("wall", "wall", _root.getNextHighestDepth(), {_x:240, _y:200});
-
_root.attachMovie("arrow", "arrow", _root.getNextHighestDepth());
-
moving = false;
-
gravity = 0.01;
-
xspeed = 0;
-
yspeed = 0;
-
precision = 24;
-
radius = 15;
-
Mouse.hide();
-
arrow.onEnterFrame = function() {
-
this._x = _xmouse;
-
this._y = _ymouse;
-
dist_x = ball._x-this._x;
-
dist_y = ball._y-this._y;
-
total_dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
-
if (total_dist>300) {
-
total_dist = 300;
-
}
-
total_dist = (300-total_dist)/500;
-
angle = Math.atan2(dist_y, dist_x);
-
this._rotation = angle*57.2957795;
-
};
-
ball.onEnterFrame = function() {
-
if (moving) {
-
dir = arrow._rotation;
-
xspeed += total_dist*Math.cos(dir*0.0174532925);
-
yspeed += total_dist*Math.sin(dir*0.0174532925);
-
}
-
yspeed += gravity;
-
this._x += xspeed;
-
this._y += yspeed;
-
xspeed *= 0.99;
-
yspeed *= 0.99;
-
for (x=1; x<precision; x++) {
-
spot_x = this._x+radius*Math.sin(x*360/precision*0.0174532925);
-
spot_y = this._y-radius*Math.cos(x*360/precision*0.0174532925);
-
if (wall.hitTest(spot_x, spot_y, true)) {
-
xspeed = 0;
-
yspeed = 0;
-
this._x = 50;
-
this._y = 50;
-
}
-
}
-
};
-
_root.onMouseDown = function() {
-
moving = true;
-
};
-
_root.onMouseUp = function() {
-
moving = false;
-
};
Let's play it!
Download the source code and give me feedback
If you liked this post buy me a beer (or two) » 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.

tag this
Jack Hopkisn | May 7, 2008 | Reply
awesome work!
btw, why did you use 0.0174532925 where you could have used radians?
JDog | May 7, 2008 | Reply
Thats really good ! I think of it more as a clone of Nitrome’s Hot Air !
Maniac | May 9, 2008 | Reply
It’s nice, but…How do you give the game “lives”, time-based scoring, and a game-over screen when you run out of lives? O_o?
Quintus | May 10, 2008 | Reply
Your Cewl! :D
Amy | May 14, 2008 | Reply
It’s good but how do you make it go to different levels and add lives etc?
Nate | May 17, 2008 | Reply
@Amy
He does this on purpose, you are supposed to do that stuff yourself, he doesn’t want to just give you a game, your supposed to work on it!
gartman222 | May 17, 2008 | Reply
i have an idea for a game. (mumbles)
Amy | May 24, 2008 | Reply
Im a newbie at coding, i can normally figure it out myself but this type of game confuses me alot.
JulianDoom | Jun 9, 2008 | Reply
Very similar to this:
http://ripe-cheese.deviantart.com/art/BALL-MAZE-BETA-47144115