package edu.minggo.chat.ui; import com.baidu.mobstat.StatService; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import edu.minggo.chat.R; import edu.minggo.game.icecream.DropIceCreamSurfaceView; import edu.minggo.game.icecream.DropIceCreamSurfaceView.DropPresentListen; /** * 堆雪糕 * @author minggo * @date 2013-5-17下午03:50:11 */ public class GameIceCreamActivity extends Activity { private DropIceCreamSurfaceView mySurfaceView; public static OnResetGameListen OnResetGameListen; private TextView timetv; private DropPresentListen dropPresentListen; private Handler handler; private Button backbt; private long startTime; private long endTime; private long finalTime; private boolean stopflag; private boolean startflag; private boolean readyflag; private int i; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(new MySurfaceView(this)); setContentView(R.layout.game_drop_present); mySurfaceView = (DropIceCreamSurfaceView)findViewById(R.id.mysurface_view); timetv = (TextView)findViewById(R.id.game_droppresent_time); backbt = (Button) findViewById(R.id.game_bt_left); backbt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); stopflag = false; startflag = false; readyflag = true; i =3; handler = new Handler(); dropPresentListen = new DropPresentListen() { @Override public void gameStop() { endTime = System.currentTimeMillis(); finalTime = endTime-startTime; stopflag = true; startflag = false; AlertDialog.Builder builder = new Builder(GameIceCreamActivity.this); builder.setMessage("用时"+finalTime+"ms"); builder.setTitle("得分"); builder.create().show(); } @Override public void gameStart() { startTime = System.currentTimeMillis(); startflag = true; readyflag = false; } }; mySurfaceView.setDropPresentListen(dropPresentListen); updateTime(); } /** * */ public void updateTime(){ handler.post(new Runnable() { @Override public void run() { if (stopflag) { handler.removeCallbacks(this); timetv.setText((endTime+"").substring(9)+"ms"); }else if(startflag){ timetv.setText((System.currentTimeMillis()+"").substring(9)+"ms"); handler.post(this); }else if (readyflag) { timetv.setText(i--+""); handler.postDelayed(this, 1000); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.game_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.game_finish: finish(); break; case R.id.game_reset: OnResetGameListen.onReset(); break; } return super.onOptionsItemSelected(item); } /** * * @author minggo * @date 2013-5-31 * @time 下午12:15:26 */ public interface OnResetGameListen{ public void onReset(); } @Override protected void onPause() { super.onPause(); StatService.onPause(this); } @Override protected void onResume() { super.onResume(); StatService.onResume(this); } }