android问题,请高手解答这段代码实现了什么功能呢?蚂蚁迷呀里面的。我是新手看不明白!谢谢了
@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){Utils.log(TAG,"onKeyDown");...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Utils.log(TAG, "onKeyDown");
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mIsBackPressed = true;
antView.pauseGame();
mGameStatus.setStaus(GameStatus.GAME_PAUSED);
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
Utils.log(TAG, "onSaveInstanceState");
}
@Override
protected void onRestoreInstanceState(Bundle outState) {
Utils.log(TAG, "onRestoreInstanceState");
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
int status = sp.getInt(GAME_STATE_PREF, GameStatus.GAME_INIT);
if (status == GameStatus.GAME_PAUSED) {
restorePausedGame();
}
}
private void resetState() {
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
sp.edit().putInt(GAME_STATE_PREF, GameStatus.GAME_INIT).commit();
}
private void saveState() {
Utils.log(TAG, "saveState");
antView.getGameStatus(mGameStatus);
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
sp.edit().putInt(GAME_STATE_PREF, GameStatus.GAME_PAUSED).commit();
float x = mGameStatus.getAntPos().x;
float y = mGameStatus.getAntPos().y;
float angle = mGameStatus.getAntAngle();
sp.edit().putFloat("x", x).commit();
sp.edit().putFloat("y", y).commit();
sp.edit().putFloat("angle", angle).commit();
sp.edit().putInt("time", this.mTimeManager.getTime()).commit();
}
private void restorePausedGame() {
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
float x = sp.getFloat("x", 0);
float y = sp.getFloat("y", 0);
float angle = sp.getFloat("angle", 0);
int time = sp.getInt("time", 0);
if (mTimeManager !=null) {
mTimeManager.restoreTime(time);
mTimeManager.pause();
} else {
Utils.log(TAG, "lllllllllllllllltime is null");
}
mGameStatus.setStaus(GameStatus.GAME_PAUSED);
mGameStatus.setAntAngle(angle);
mGameStatus.setAntPos(new Pos(x, y));
if (antView != null) {
antView.setRestoredState(mGameStatus);
}
}
} 展开
public boolean onKeyDown(int keyCode, KeyEvent event) {
Utils.log(TAG, "onKeyDown");
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mIsBackPressed = true;
antView.pauseGame();
mGameStatus.setStaus(GameStatus.GAME_PAUSED);
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
Utils.log(TAG, "onSaveInstanceState");
}
@Override
protected void onRestoreInstanceState(Bundle outState) {
Utils.log(TAG, "onRestoreInstanceState");
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
int status = sp.getInt(GAME_STATE_PREF, GameStatus.GAME_INIT);
if (status == GameStatus.GAME_PAUSED) {
restorePausedGame();
}
}
private void resetState() {
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
sp.edit().putInt(GAME_STATE_PREF, GameStatus.GAME_INIT).commit();
}
private void saveState() {
Utils.log(TAG, "saveState");
antView.getGameStatus(mGameStatus);
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
sp.edit().putInt(GAME_STATE_PREF, GameStatus.GAME_PAUSED).commit();
float x = mGameStatus.getAntPos().x;
float y = mGameStatus.getAntPos().y;
float angle = mGameStatus.getAntAngle();
sp.edit().putFloat("x", x).commit();
sp.edit().putFloat("y", y).commit();
sp.edit().putFloat("angle", angle).commit();
sp.edit().putInt("time", this.mTimeManager.getTime()).commit();
}
private void restorePausedGame() {
SharedPreferences sp = this.getSharedPreferences(PREF, MODE_PRIVATE);
float x = sp.getFloat("x", 0);
float y = sp.getFloat("y", 0);
float angle = sp.getFloat("angle", 0);
int time = sp.getInt("time", 0);
if (mTimeManager !=null) {
mTimeManager.restoreTime(time);
mTimeManager.pause();
} else {
Utils.log(TAG, "lllllllllllllllltime is null");
}
mGameStatus.setStaus(GameStatus.GAME_PAUSED);
mGameStatus.setAntAngle(angle);
mGameStatus.setAntPos(new Pos(x, y));
if (antView != null) {
antView.setRestoredState(mGameStatus);
}
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询