关于自己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;
    }
   }
  }
     
    };

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值