Step 4: Scores and explosions
We are now going to add in a score display, some graphics to show the enemy exploding and some collision detection code which will detect if the players spaceship has hit an enemy spaceship.
Close the actions window if it is still open.
On the main timeline create a new layer called score.
On this layer create a dynamic text box, you can put it anywhere on the screen. Stretch the text box out so it is wide enough to display the score (as shown below).
With the text box selected click on the text options panel and set the drop down list to dynamic text, the variable name to score, uncheck the Selectable option and click the embed fonts button for numbers (as shown on the right).
Now, still on the main timeline select the first frame
of the control frame and open up the actions window (Window > actions). Underneath
the existing code on this frame add the line
This simply sets up the score variable and sets it to zero at the start of the game.
Now we want to add in an explosion animation for the enemy movieclip when its hit by a laser. Open the enemy movieclip in Edit mode. (Doubleclick the enemy1 movieclip on the stage or open the enemy movie clip from the library).
At the moment you should have one layer with one frame containing the enemy graphic. On that layer create four new keyframes and modify the graphic to depict the enemy exploding (as shown below). Select frame six of this layer and insert a blank keyframe (Insert > Blank key frame or F7).
create a new layer (Insert > Layer) and call it control.
Select the first frame of this layer and open up the actions window for the
frame (Window > Actions). Type the following code:
Now insert a blank keyframe on frame 6 of this control
layer (Select frame 6 and then Insert > Blank key frame). Select the new
blank key frame on frame 6 and open up the actions window
for the frame (Window > Actions). Type the following code:
All we did was to cause the enemy movie clip to stop on
frame one and frame 6. But why?
We stop the enemy movie clip on frame one because we don't want the explosion animation to play until the enemy is hit by a laser.
We have previously added the code to play the animation from frame 2 when the laser collides with the enemy movie clip.
We stop the movie clip after the explosion on frame 6 because there are no graphics on this frame. The movie clip still exists and will still keep moving across the stage until it reaches the left hand side and is reset. However as there are no graphics being displayed Flash wont detect collisions between the movie clip and the spaceship or the lasers. Which makes sense, because we don't want the enemy to collide with anything once its been blown up.
|» Level Intermediate|
Rating: 9 Votes: 517
|No details available.|
|Download the files used in this tutorial.|
|Download (416 kb)|
|More help? Search our boards for quick answers!|