Tutorial: Create a Game Like Winter Bells in AS2 – Part 5
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!
Great tutorial, this will come in handy!
January 2nd, 2009 at 11:13 am
When i grab the first triangle it simply falls down and the “bells” dissappear
thnx for your great tutorial
March 6th, 2009 at 1:59 pm
great tut, maan
March 7th, 2009 at 8:32 am
thanks, yout tut, helps me very much
March 7th, 2009 at 8:33 am
Hey, man this is the tutorial I always wanted!!
thanks so much for this and…you should be getting more comments
June 13th, 2009 at 7:37 am
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.
August 11th, 2009 at 11:33 pm
thanks for the tutorial!
October 22nd, 2009 at 5:49 pm
how do i remove the snow when i hit ground i cant figure it out
October 23rd, 2009 at 8:51 pm
i scored 231681663230 in this game!!!!!!!!!1
January 22nd, 2010 at 1:28 pm
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.
February 10th, 2010 at 1:30 pm