LunarLanderpublic class LunarLander extends android.app.Activity This is a simple LunarLander activity that houses a single LunarView. It
demonstrates...
- animating by calling invalidate() from draw()
- loading and drawing resources
- handling onPause() in an animation
|
Fields Summary |
---|
private static final int | MENU_EASY | private static final int | MENU_HARD | private static final int | MENU_MEDIUM | private static final int | MENU_PAUSE | private static final int | MENU_RESUME | private static final int | MENU_START | private static final int | MENU_STOP | private com.example.android.lunarlander.LunarView.LunarThread | mLunarThreadA handle to the thread that's actually running the animation. | private LunarView | mLunarViewA handle to the View in which the game is running. |
Methods Summary |
---|
protected void | onCreate(android.os.Bundle savedInstanceState)Invoked when the Activity is created.
super.onCreate(savedInstanceState);
// turn off the window's title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
// tell system to use the layout defined in our XML file
setContentView(R.layout.lunar_layout);
// get handles to the LunarView from XML, and its LunarThread
mLunarView = (LunarView) findViewById(R.id.lunar);
mLunarThread = mLunarView.getThread();
// give the LunarView a handle to the TextView used for messages
mLunarView.setTextView((TextView) findViewById(R.id.text));
if (savedInstanceState == null) {
// we were just launched: set up a new game
mLunarThread.setState(LunarThread.STATE_READY);
Log.w(this.getClass().getName(), "SIS is null");
} else {
// we are being restored: resume a previous game
mLunarThread.restoreState(savedInstanceState);
Log.w(this.getClass().getName(), "SIS is nonnull");
}
| public boolean | onCreateOptionsMenu(android.view.Menu menu)Invoked during init to give the Activity a chance to set up its Menu.
super.onCreateOptionsMenu(menu);
menu.add(0, MENU_START, 0, R.string.menu_start);
menu.add(0, MENU_STOP, 0, R.string.menu_stop);
menu.add(0, MENU_PAUSE, 0, R.string.menu_pause);
menu.add(0, MENU_RESUME, 0, R.string.menu_resume);
menu.add(0, MENU_EASY, 0, R.string.menu_easy);
menu.add(0, MENU_MEDIUM, 0, R.string.menu_medium);
menu.add(0, MENU_HARD, 0, R.string.menu_hard);
return true;
| public boolean | onOptionsItemSelected(android.view.MenuItem item)Invoked when the user selects an item from the Menu.
switch (item.getItemId()) {
case MENU_START:
mLunarThread.doStart();
return true;
case MENU_STOP:
mLunarThread.setState(LunarThread.STATE_LOSE,
getText(R.string.message_stopped));
return true;
case MENU_PAUSE:
mLunarThread.pause();
return true;
case MENU_RESUME:
mLunarThread.unpause();
return true;
case MENU_EASY:
mLunarThread.setDifficulty(LunarThread.DIFFICULTY_EASY);
return true;
case MENU_MEDIUM:
mLunarThread.setDifficulty(LunarThread.DIFFICULTY_MEDIUM);
return true;
case MENU_HARD:
mLunarThread.setDifficulty(LunarThread.DIFFICULTY_HARD);
return true;
}
return false;
| protected void | onPause()Invoked when the Activity loses user focus.
super.onPause();
mLunarView.getThread().pause(); // pause game when Activity pauses
| protected void | onSaveInstanceState(android.os.Bundle outState)Notification that something is about to happen, to give the Activity a
chance to save state.
// just have the View's thread save its state into our Bundle
super.onSaveInstanceState(outState);
mLunarThread.saveState(outState);
Log.w(this.getClass().getName(), "SIS called");
|
|