How to Create a Game Like Winter Bells in AS2 – Part 5
Part 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!