触屏部分
public boolean onTouchEvent(MotionEvent event){//重写onTouchEvent方法
if(event.getAction()==MotionEvent.ACTION_UP){//判断事件类型
int x=(int)event.getX();//获得点击处的X坐标
int y=(int)event.getY();//获得点击处的Y坐标
if(gameState==States.GM_MENU){//如果当前界面是欢迎界面
if(menu[0].contains(x, y)){
gc.menu.row=1;
try {
gameMain.gm.gc.back.pause();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
gameMain.gm.gameState=States.GM_LOAD;
return true;
}
else if(menu[1].contains(x, y)){
gameMain.gm.gameState=States.GM_HELP;
gc.menu.row=2;
return true;
}
else if(menu[2].contains(x, y)){
gameMain.gm.gameState=States.GM_ABOUT;
gc.menu.row=3;
return true;
}
else if(menu[3].contains(x, y)){
gameMain.gm.gameState=States.GM_EXIT;
gc.menu.row=4;
System.exit(0);
return true;
}
}
else if(gameState==States.GM_ACTION)
{
if(S.contains(x, y))
{
if(gc.game.snum>=10)
{
gc.game.ji=1;
try {
gc.game.jinengl.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
gc.game.snum-=10;
gc.game.speed++;
gameMain.gm.gameState=States.GM_JINENG;
}
}
if(T.contains(x, y))
{
if(gc.game.tnum>=5)
{
gc.game.ji=2;
try {
gc.game.jinengl.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
gc.game.tnum-=5;
gc.game.levellastTime+=5;
gameMain.gm.gameState=States.GM_JINENG;
}
}
}
else if(gameState==States.GM_PAUSE)
{
if(yes.contains(x, y))
{
gameMain.gm.gameState=States.GM_MENU;
gc.load.process=0;
return true;
}
else if(no.contains(x, y))
{
gameMain.gm.gameState=States.GM_ACTION;
return true;
}
}
}
return true;
}
重力感应部分
mySensorManager=(SensorManager)getSystemService( SENSOR_SERVICE);
mySensorManager.registerListener(mySensorListener, SensorManager.SENSOR_ORIENTATION,SensorManager.SENSOR_DELAY_GAME);
}
private SensorListener mySensorListener=new SensorListener(){
public void onAccuracyChanged(int arg0, int arg1) {
// TODO Auto-generated method stub
}
public void onSensorChanged(int sensor, float[] values) {
// TODO Auto-generated method stub
if(sensor==SensorManager.SENSOR_ORIENTATION&&gameState==States.GM_ACTION)
{
if(values[2]<=-10&&values[2]>=-70)
{
gm.gc.direction=Direction.D_REIGHT;
}
else if(values[2]>=10&&values[2]<=70)
{
gm.gc.direction=Direction.D_LEFT;
}
else if(values[2]>-10&&values[2]<10)
{
gm.gc.direction=Direction.D_NULL;
}
}
}
};