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);
}
}
}
展开
 我来答
qiulei917
2013-03-22
知道答主
回答量:1
采纳率:0%
帮助的人:2.5万
展开全部
一个游戏的部分代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
重写了按键的方法,用来检测玩家按了哪个键,
里面case KeyEvent.KEYCODE_BACK:用来执行:当用户按下返回键,就暂停游戏。
其他的几个函数基本上就是用来存储暂停时游戏的状态,当你返回游戏时重载这些信息,回到暂停时的情况,谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式