RELATED LINKS:
AS: Main
AS: Duplicated Movie Clips
AS: Frame Functions
Ultimate Tutorial 2
THE TUTORIAL:
First off, create a ball. Make it a movie Clip with the instance of circle, then add the actions below:
onClipEvent (load) {
fall = false;
_name = "circle";
jump = 0;
speed = 8;
jumpheight = 15;
maxfall = -54;
}
onClipEvent (enterFrame) {
xmin = getBounds(_root).xMin;
xmax = getBounds(_root).xMax;
ymin = getBounds(_root).yMin;
ymax = getBounds(_root).yMax;
if (Key.isDown(Key.SPACE) && fall == false && jump == undefined) {
fall = true;
jump = jumpheight;
}
if (jump<>undefined) {
if (jump>maxfall) {
jump--;
}
_y -= jump;
}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_x -= speed;
}
if (Key.isDown(Key.RIGHT)) {
_x += speed;
}
}
this makes the player moveable and jumpable when on a platform
Next, draw a platform on the floor. do not give it an instance name. add this script to it:
onClipEvent (load) {
activated = false;
down = false;
}
onClipEvent (enterFrame) {
_root.report.text = Math.round(_root.circle.yMax)+" "+Math.round(yMin);
xmin = getBounds(_root).xMin;
xmax = getBounds(_root).xMax;
ymin = getBounds(_root).yMin;
ymax = getBounds(_root).yMax;
if (_root.circle.xMax>xMin && _root.circle.xMin<xMax && _root.circle.yMax<yMin) {
if (_root.circle.yMax-_root.circle.jump*2>yMi
n) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
}
if (Math.round(_root.circle.yMax)>Math.round(
yMin)) {
if (hitTest(_root.circle) && _root.circle.xmax<xmin) {
_root.circle._x -= _root.circle.speed;
}
if (hitTest(_root.circle) && _root.circle.xmin>xmax) {
_root.circle._x += _root.circle.speed;
}
if (hitTest(_root.circle) && _root.circle.ymin>ymax && _root.circle.jump>-1) {
_root.circle.jump = -1*(_root.circle.jump);
}
}
if (activated == true && not hitTest(_root.circle) && _root.circle.jump == undefined) {
_root.circle.jump = 0;
activated = false;
}
if (hitTest(_root.circle) && _root.circle.ymax>ymin && _root.circle.jump<>undefined && _root.circle._y<_y) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
if (_root.circle.ymax-_root.circle.jump>ymin && _root.circle.xMin<xMax && _root.circle.xMax>xMin && _root.circle.jump<>undefined && _root.circle._y<_y) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
}
this makes a fully funtional platform with walls, ceiling and floor.
now copy that and resize it to make walls and a ceiling. You can dowload a sample file of the above in Ultimate Tutorial 2.
Now, make a small square movie clip off screen with the instance "plat" no quotes, and the sam script as the platform.
Now make a Dynamic Text Box with the variable name "power" no quotes.
Add the following actions to the frame:
onLoad = function(){
i = 1;
power = 100;
placing = false;
}
onMouseDown = function(){
placing = true;
}
onEnterFrame = function(){
if(placing){
if(power >0){
i ++;
_root.plat.duplicateMovieClip("plat"+i,100
0 + i);
_root["plat"+i]._x = _root._xmouse;
_root["plat"+i]._y = _root._ymouse;
_root["plat"+i]._alpha = power;
power --;
}
}
}
onMouseUp = function(){
placing = false;
}
this makes the plat movie clip duplicate when the mouse is down, and creates a platform that will work in the same way as the floor, walls or ceilings, and makes you only be able to build one if you have power.
The last thing to do is go to File/Publish Settings and make sure that the export flash player is 6, yes flash 6, or it wont work.
To view a sample, click here