Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
- 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
Skill Level Intermediate
The great thing about Android devices is that they have physical buttons that you can use to add additional functionality to your game. Those buttons include the Options menu, the Search button, as well as the Back button. And probably the most common used is going to be that Options button, or Options menu, because again, you can use it to add, for instance, this Options menu that I have right here. So just turn off the introScreen, and you will see it right there. It's called Options menu. And that's what I want to toggle on and off when you click on that Options key on the actual device.
And I am going to add some functionality by using code snippets. So refer to the Code Snippets video if you don't have this Mobile Game folder. And if I scroll down, Mobile menu key, that's what I want to use. I will just double-click on it to add that functionality. And now I can put everything in its proper place. So all variables actually are going to be at the top, so I will take this first line, I'll cut it, scroll up to the top, and paste it about line 22.
Paste it right in there. So, this is a Boolean, so it's a true/false statement, and it's set to true by default. So it is hidden by default. In fact, the optionsmenu, you can see its visibility is set to false. So, hiddenOptions is set to true by default, so let's keep that in mind. Scroll back down and again I am just going to go ahead and move up all of this code, because sure enough, I want it to start right here after line 440. In fact, I'll add my first comment right in here: When any hardware key is pressed...
Well then, go ahead and fire off this function. So again, KEY_UP for anything, then go ahead and do this optionsKey function. Okay. So right in here, you can see Options menu. You can use this keyCode, 16777234, or a keyboard menu. Now if you use keyboard menu, it actually will throw you an error in Flash, so that's why I am going to use 16777234. Okay. But I want to add to this as well because I don't have an options key on my desktop computer.
So I want to go ahead and add two vertical pipes, those vertical slashes, and what I want to do is this adds an Or statement, so I can say, if this is pressed, or, and I'll just copy this line right here. 13. And what 13 is is the Enter key on the keyboard. All right! So again, for development purposes, that's why I want to add this in.
So when I test it on my desktop, I just want to make sure everything is working just fine. Okay. So if I hit the Enter key or hit the Options button right here, show the optionsmenu. That's its instance name and by default, go ahead and show it. So if it's equal to true, then place the optionsmenu on top of everything else. That's what this setChildIndex does. Because remember, all of those graphics for the game-- the enemies, the lasers, even my players-- they are all pulled from the library and added directly to this stage.
And they're added on top of one another. So I want to make sure this menu is on top of all of that stuff by adding a setChildIndex, making sure it's at the very top. But again, right here, I am going to copy this optionsmenu instance name and paste it over instance name here. I'll do the same thing here. So again, turn it on, put it on top, turn it on, give it an EventListener. This EventListener fires off this exitApp function right down here. And again, this is commented out as well. This is using NativeApplication functionality.
This is going to go ahead and exit out of the application when they go ahead and click on the menu. Now, of course, while I am testing this out, what I want to do is I want to add a trace statement that says exitApp, just so I know it's working on the desktop. So I've added that trace statement in. It's looking good so far. I can move on. Within this else statement, I can go ahead and say "If the optionsmenu is visible, then hide it..." And that's what this does. I'll copy this optionsmenu name and paste it right in there. It turns it off, removes that EventListener.
And then lastly this is just the toggle. It turns it on and off. The hiddenOptions makes it true or false each time around. So that's how we have our Toggle button created, which is our optionsmenu. And I am just going to go ahead and test this out on my device. I am going to press the Enter key. So I'll just do a Control > Test Movie. I am going to test it in Flash. Here is my game. Click Play. You saw it work. You saw the menu up here on my desktop.
So the next step is to go ahead and test this out on my device. So I am just going to go ahead and put this on a Droid 2. Here is with the game on a Droid 2. I am going to go ahead and click Play. So I am able to play the game. Then I can hit the Options button. It shows the Options menu. I can press the Options button again and the Options menu is hidden. So again, that's how you can tap into the actual hardware keys of the device to extend the functionality of your game.