Do you like my tutorials?

Then consider supporting me on Ko-fi

Talking about Snowflakes game, Actionscript 2, Flash and Game development.

Today I enjoyed a cute game called Snowflakes and I am about to show you how to create the main engine behing the game.

Snowflakes

The game is simple: a bunch of stars (snowflakes in the game, but I guess the author new saw the snow…) is falling from the sky, and you can affect their direction with your mouse, blowing them around.

Only two objects in this movie, the star and the mouse pointer.

This is the AS2 version, tomorrow I’ll publish the AS3 one.

// mouse cursor replacement
Mouse.hide();
_root.attachMovie("pointer","pointer",_root.getNextHighestDepth());
// max stars on stage
max_stars = 20;
// current stars on stage
stars_on_stage = 0;
// gravity
gravity = 0.1;
// this is the influence distance
// using influence and real_influence I perform the square root only once
// when the distance from the mouse and the star is less than real_influence
// then the star is affected by the mouse
influence = 625;
real_influence = Math.sqrt(influence);
// friction
friction = 0.9;
// divider, to make stars move slowly
divider = 50;
// main function
_root.onEnterFrame = function() {
	// should I add a star?
	if (stars_on_stage300) {
				stars_on_stage--;
				this.removeMovieClip();
			}
		};
	}
};
// function to be executed by the mouse pointer
pointer.onEnterFrame = function() {
	// calculating the distance from the last point the mouse was spotted
	// and the current mouse position
	dist_x = this._x-_root._xmouse;
	dist_y = this._y-_root._ymouse;
	mouse_speed = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
	// minimum speed = minimum force applied
	if (mouse_speed<0.2) {
		mouse_speed = 0.2;
	}
	// updating pointer position
	this._x = _root._xmouse;
	this._y = _root._ymouse;

};

And here it is... now you can affect stars movement like in the original game.

Adjust gravity, influence, friction and divider to fine tune gameplay.

Download the source code.

Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.