当前位置:操作系统 > 安卓/Android >>

【Android游戏开发十八】解放手指,利用传感器开发游戏!

 

前两篇都是向大家介绍了很有意思的两种手势操作,嵌入我们游戏中,不得不说让游戏的自由度、可玩性和趣味性都增色不少!那么今天继续给大家介绍一亮点!传感器!

 

一:什么是传感器:

     所谓传感器能够探测如光、热、温度、重力、方向 等等的功能!

 

二:Android中提供传感器有哪些:

     1.  加速度传感器(重力传感器)

     2.  陀螺仪传感器

     3.  光传感器

     5.  恒定磁场传感器

     6.  方向传感器

     7.  恒定的压力传感器

     8.  接近传感器

     9.  温度传感器

 

今天我们给大家介绍的是游戏开发中最最常见的,用到的频率最高的一种传感器,加速度传感器(重力传感器)!

 

因为模拟器无法测试,所以我用手机调试的~,先上两张截图;

 


 

\         \        

 

 

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

/**

 *@author Himi

 *@Sensor 加速度传感器,也称为重力传感器 

 *@SDK 1.5(api 3)就支持传感器了

 *@解释:此传感器不仅对玩家反转手机的动作可以检测到,而且会根据反转手机的程度,得到传感器的值也会不同!

 */ 

public class MySurfaceView extends SurfaceView implements Callback, Runnable { 

    private Thread th = new Thread(this); 

    private SurfaceHolder sfh; 

    private Canvas canvas; 

    private Paint paint; 

    private SensorManager sm; 

    private Sensor sensor; 

    private SensorEventListener mySensorListener; 

    private int arc_x, arc_y;// 圆形的x,y位置 

    private float x = 0, y = 0, z = 0; 

    public MySurfaceView(Context context) { 

        super(context); 

        this.setKeepScreenOn(true); 

        sfh = this.getHolder(); 

        sfh.addCallback(this); 

        paint = new Paint(); 

        paint.setAntiAlias(true); 

        setFocusable(true); 

        setFocusableInTouchMode(true); 

        //通过服务得到传感器管理对象  

        sm = (SensorManager) MainActivity.ma.getSystemService(Service.SENSOR_SERVICE); 

        sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//得到一个重力传感器实例 

        //TYPE_ACCELEROMETER    加速度传感器(重力传感器)类型。 

        //TYPE_ALL              描述所有类型的传感器。 

        //TYPE_GYROSCOPE        陀螺仪传感器类型 

        //TYPE_LIGHT            光传感器类型 

        //TYPE_MAGNETIC_FIELD   恒定磁场传感器类型。 

        //TYPE_ORIENTATION      方向传感器类型。 

        //TYPE_PRESSURE         描述一个恒定的压力传感器类型 

        //TYPE_PROXIMITY        常量描述型接近传感器 

        //TYPE_TEMPERATURE      温度传感器类型描述 

        mySensorListener = new SensorEventListener() { 

            @Override 

            //传感器获取值发生改变时在响应此函数 

            public void onSensorChanged(SensorEvent event) {//备注1  

                //传感器获取值发生改变,在此处理  

                x = event.values[0]; //手机横向翻滚 

                //x>0 说明当前手机左翻x<0右翻      

                y = event.values[1]; //手机纵向翻滚 

                //y>0 说明当前手机下翻y<0上翻 

        

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,