Tutorial: Create a Game Like Winter Bells in AS2 – Part 5


Written By MrSun at 8:05 am - Thursday, January 01st, 2009
Categories: Flash

Step 5: Finishing Touches

This part of tutorial is where we add some bug fixes and special effects. Let’s get started.

The first bug fix that we have to make is one related to jumping. I probably should have noticed this beforehand but with our current code, you can continue clicking and jumping even while you’re in the air. This is definitely not what we want. Fortunately, this is easy to fix. Just take the mcBg‘s onRelease function and change it to this:

mcBg.onRelease = function(){//if the user clicks
	if(!mainJumping){
		mainJumping = true;//then we can start jumping
		jumpSpeed = jumpSpeedLimit*-1;//change the jumpSpeed so that we can begin jumping
	}
}

The next bug we need to fix occurs after the mcFinalStats is shown on the screen. Whenever you click anywhere, mcMain can still jump. When it lands, another mcFinalStats is created. We can fix this no problem. Add an && !gameOver to the if statement in the mcBg‘s click function. That’s all we need.

The next thing we need to fix really isn’t a bug. In my opinion, mcMain doesn’t jump high enough. Simply make him jump just a little bit higher by changing the mainJump() function to this:

function mainJump():Void{
	if(mainJumping) {//if jumping has been initiated
		if(jumpSpeed < 0){//if the guy is still going up
			jumpSpeed *= 1 - jumpSpeedLimit/133;//decrease jumpSpeed slightly
			if(jumpSpeed > -jumpSpeedLimit*.1){//if jumpSpeed is small enough
				jumpSpeed *= -1;//then begin to go down
			}
		}
		if(jumpSpeed > 0 && jumpSpeed <= jumpSpeedLimit){//if main is going down
			jumpSpeed *= 1 + jumpSpeedLimit/133;//incrase the falling speed
		}
		mcMain._y += jumpSpeed;//finally, apply jumpSpeed to mcMain
		//if main hits the floor, then stop jumping
		if(mcMain._y >= Stage.height - mcMain._height && totalHeight <= 0){
			mainJumping = false;
			mcMain._y = 387.5;
			if(startedJumping){//if the main has begun jumping
				gameOver = true;//then finish the game
				showFinalStats();//and show the poor kid their stats
			}
		}
		
		totalHeight -= jumpSpeed;//add to the total height (jumpSpeed will be negative)
	}
	if(mcMain._y > 387.5){
		mcMain._y = 387.5;
	}
}

I just changed the two 120’s to 133’s. That’ll make jumping a bit better.

Now, we can add some special effects. The first one, of course, is going to be a background. First, define a variable called totalBgShapes at the top and set it to 0. Then, add this code to the main onEnterFrame() function:

//creating background particles
bellHolder.createEmptyMovieClip("bg"+totalBgShapes, bellHolder.getNextHighestDepth());
bellHolder["bg"+totalBgShapes].beginFill(0x333333); //this just determines the shape's color
bellHolder["bg"+totalBgShapes]._x = int(Math.random()*550);
bellHolder["bg"+totalBgShapes]._y = bellTop;
//creating 4 random points to make a random shape
bellHolder["bg"+totalBgShapes].lineTo(int(Math.random()*5), int(Math.random()*5));
bellHolder["bg"+totalBgShapes].lineTo(int(Math.random()*5), int(Math.random()*5));
bellHolder["bg"+totalBgShapes].lineTo(int(Math.random()*5), int(Math.random()*5));
ellHolder["bg"+totalBgShapes].lineTo(int(Math.random()*5), int(Math.random()*5));
bellHolder["bg"+totalBgShapes].endFill();//finishes up the shape

bellHolder["bg"+totalBgShapes].onEnterFrame = function(){//giving it some actions
	this._y += 2;
}
	
totalBgShapes ++;

Now, we notice that the background is actually in front of the main character. Do not fret, simply add this code to the bottom of everything:

mcMain.swapDepths(10);//making it in front of everyone

Well, I guess that pretty much finished up everything. I hoped you learned much from my tutorial!

The Final Product

Source .fla File

10 Comments

robby:

Great tutorial, this will come in handy!


B:

When i grab the first triangle it simply falls down and the “bells” dissappear

thnx for your great tutorial


catering łódź:

thanks, yout tut, helps me very much


smac:

Hey, man this is the tutorial I always wanted!!

thanks so much for this and…you should be getting more comments


Cat:

Thanks for this tutorial!

Has anyone figured out how to make several levels of this game? Like, when you reach a certain score you go to a new scene with a different background and different graphics?

I’ve gotten as far as making it go to a new scene on a certain score, but no further.


geecnique:

thanks for the tutorial!


ltsquirrel:

how do i remove the snow when i hit ground i cant figure it out


chief brown:

i scored 231681663230 in this game!!!!!!!!!1


Beth:

How would I go about making the background image more complex. For instance having the Jumping Guy start out standing on grass, then the grass sliding away as he gets high enough and the background moves down?
Also, great tutorial! Thanks a lot.


«
»