關於自己android遊戲《小魚喫水果》重力感應和觸屏部分

 

觸屏部分

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;
    }
   }
  }
     
    };

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章