Subtracting lives and ending the game
Video: Subtracting lives and ending the gameAt this point in the development of the game, I have scoring hooked up, I have the various levels, but I don't have the number of lives. So what I want to do is I want to add a certain number of lives to the player, and when the lives are at zero the game will end. The lives will be subtracted when one of those UFOs reaches the very bottom, or if a UFO actually hits the player. So that's how you lose lives, and I think we'll start out with 2 lives initially.
- Next steps
Viewers: in countries Watching now:
In Flash Professional CS5: Creating a Simple Game for Android Devices, author Paul Trani shows how to translate existing Flash skills from the web to mobile devices while designing a game in Flash and publishing it as an AIR for Android app. The finished application includes collision detection, random enemy creation and movement, shooting capabilities, multiple levels, and even a high score screen. This course also goes beyond game functionality and shows how to use mobile capabilities such as the accelerometer and gestures to control graphics, use the hardware keys to activate menus, and also how to optimize content so it plays well on mobile devices. Also included are instructions for distributing an app through the Android Market. Exercise files are included with the course.
- Designing for mobile platforms
- Creating and optimizing game graphics
- Adding random movement and interactivity
- Moving players based on the accelerometer
- Using gestures
- Detecting collisions
- Implementing audio
- Adding scoring and levels
- Implementing a high score screen
- Publishing an app on both Mac and Windows
- Uploading to the Android Market
Subtracting lives and ending the game
At this point in the development of the game, I have scoring hooked up, I have the various levels, but I don't have the number of lives. So what I want to do is I want to add a certain number of lives to the player, and when the lives are at zero the game will end. The lives will be subtracted when one of those UFOs reaches the very bottom, or if a UFO actually hits the player. So that's how you lose lives, and I think we'll start out with 2 lives initially.
Okay, so let's take a look at this text field right here. It's on this text layer. I just have those other layers turned off. I have it selected, and you can see that its instance name is lives_txt. Okay, so I want to initially give it some lives--two lives to begin with. So let's go into the Actions panel with that first frame selected in the actions layer, and let's scroll up to the top. Just right up here at the top, this is where I'll set all my variables, and I want to set another variable called lives, and it is going to be a number.
And with this variable created, what I want to do is I actually want to make it equal to two when the game starts. So right down here on line 74, within this initialize game function, right down in here, this is where I want to give it a number of lives. Lives is going to be equal to 2. So that's where we'll start out and put in that text field the number of lives.
Okay, so it's set 2 initially, and like I was explaining, when any one of those temp enemies hit the bottom or hit my player, I want to subtract from the number of lives. So let's scroll down into the moveEnemies area, right down here near the bottom. I have this makeExplosion, I have this removeEnemy, and I am going to go ahead and write a comment: Subtract a life, basically. So let's go ahead and make lives, subtract one from it, and that's just two subtraction symbols right there, and that's going to subtract from the current number.
So that will subtract it one clear down to zero. I still need to update that text field with the lives the new number there, so that's how I do that. And I'd say that looks good. So it's going to continually subtract, so I need to check to see when the lives equal zero and then show the end screen when there it happens. So I am going to scroll down a little further. In this testForEnd, I am checking the levels various things like the score.
Well, right in here check to see how many lives that the user has. That's what I want to do. So, if (lives == 0) then go ahead and do this, whatever is between these two curly braces. And in this case, what I want to do is I actually want to change the gameState, so right here I am going to just take these two lines. I am going to cut them, and I am going to move them on up in here. In fact, I am going to uncomment this one, because at this point when the lives = 0, then we need to change the gameState to STATE_END_GAME, which is then going to fire off that particular function to end the game, which honestly just shows the endScreen.
So that's what's going to happen when the lives equal zero. So let's just go ahead and test this, and I'm just going to have two of the UFOs hit the bottom, or hit my player, so we could see the end screen. There we are. Great! That worked pretty darn well. I'd say that went exactly as expected.
Now at this point, since I'm showing the results screen, what I want to do is I need to do a little bit of cleanup. That's really my next step, and my character is still moving, but you can see that the lives work, the game ends, it shows me this final screen, and then I just need to do a little bit of cleanup.
There are currently no FAQs about Flash Professional CS5: Creating a Simple Game for Android Devices.