10. The bubble is ready to go now, but we need something to make it appear. We’ll use the MO class to do this, as the character is always on screen. Edit the MO.as file, and add a new variable underneath the var movedelta = 10 code as follows: var bubbleCounter = 0; Next, after the code that checks for the arrow key presses (within the onEnterFrame function) enter the following additional code (or get it from the CD file Step 10): bubbleCounter += 1; if(bubbleCounter > 30) { bubbleCounter = 0; _root.attachMovie(“EB”, “EB”+_root.getNextHighestDepth(), _root. getNextHighestDepth()); } } }

11. Test your movie: you should see an evil bubble appear on screen every second, travel across the screen and disappear off the left-hand edge of the screen. As it takes more than one second for the travel to happen, it’s possible to have many bubbles on screen at once. The code we’ve just added controls how often (in frames) a new bubble is created. If you want more, lower the “>30” bit of the code to, say, “>20”. If you want fewer, increase that number.

12. We’re going to add some collision detection to the bubbles. When they hit Madame Octopus, we want to end the game (the aim being to avoid the bubbles for as long as possible). To do this, we need to first give MO an instance name so we can refer to her from the bubble class. Click on the Madam Octopus then enter an instance name of ‘octopus’ in the Properties panel.

13. Create a new symbol (Insert > New Symbol), drag it onto the stage and give it an instance name of endGamePanel. Inside the endGamePanel, create a ‘Game Over’ screen to suit (or check out our version). Set the alpha property of your symbol to 0. Create a new layer in your main timeline. Name it actions, then add the following code, or copy and paste it from the cover CD file Step 13a: Var tmpscore = 0; var playing = true; function endGame() { playing = false; _root.endGamePanel._alpha = 100; } Edit EB.as and enter the code below inside the onEnterFrame function, or copy and paste it from file Step 13b on the cover CD. This uses the built-in hitTest function to check if a bubble is touching MO. If it is, the bubble is removed and the endGame() function is called: if(this.hitTest(_root.octopus)) { this.removeMovieClip(); _root.endGame(); }