Android骰子游戏案例源码(2)

那么我还需要一个主界面控制一下~

package com.syxy.dice;

import Android.app.Activity;
import android.app.Service;
import android.graphics.Canvas;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener,
 SensorEventListener{

Button play, reset;
 MySurfaceView view;
 Dice dice;
 Canvas canvas;
 
 SensorManager sensorManager = null;  //传感器管理器
 Vibrator vibrator = null;  //振动传感器
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);  //取得传感器管理器的实例
  vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);
 
    view = (MySurfaceView)findViewById(R.id.view);
  dice = new Dice(getResources());
  play = (Button)findViewById(R.id.play);
  reset = (Button)findViewById(R.id.reset);
  canvas = new Canvas();
 
  play.setOnClickListener(this);
  reset.setOnClickListener(this);
 }


 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }


 
 @Override
 protected void onPause() {
  // TODO Auto-generated method stub
  super.onPause();
  System.out.println("-----10-----");
  sensorManager.unregisterListener(this);
 }


 @Override
 protected void onResume() {
  // TODO Auto-generated method stub
  super.onResume();
  System.out.println("-----11-----");
  sensorManager.registerListener(this,
    sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
    SensorManager.SENSOR_DELAY_NORMAL);
 }


 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  if(v == play){
   view.i = 1;
   view.isRun = true;
  }else if(v == reset){
   canvas = view.holder.lockCanvas();
   dice.DrawDice(canvas, view.Dice_x, view.Dice_y);
   view.holder.unlockCanvasAndPost(canvas);
  }
 }

@Override
 public void onAccuracyChanged(Sensor sensor, int accuracy) {
  // TODO Auto-generated method stub
 
 }


 @Override
 public void onSensorChanged(SensorEvent event) {
  // TODO Auto-generated method stub
  System.out.println("-----12-----");
  int sensorType = event.sensor.getType();  //得到传感器的类型
  //values的值,values[0]:X轴,values[1]:Y轴,values[2]:Z轴 
  System.out.println("-----13-----");
  float[] values = event.values;
  System.out.println("-----14-----");
  if(sensorType == Sensor.TYPE_ACCELEROMETER){  //如果传感器类型是加速度计
   System.out.println("-----15-----");
   if(Math.abs(values[0])> 10
     || Math.abs(values[1]) > 10
     || Math.abs(values[2] )> 10){
    System.out.println("-----16-----");
    vibrator.vibrate(300);
    view.isRun = true;
    System.out.println("-----摇一摇-----");
   }
  }
 }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0fde5296574e4c95cb25b480416fc9a8.html