android 重力感应小球 Demo

研究android重力感应,发现所有的demo都是输出x,y,z的,看的头大,自己做了个控制小球运动的demo,大家可以看看。

 

其实最主要的就是利用accelerometer 加速度传感器输出的X和Y,代码如下:

 

 public void onSensorChanged(SensorEvent event) { if (!init) return; float x = event.values[SensorManager.DATA_X]*3; float y = event.values[SensorManager.DATA_Y]*3; float z = event.values[SensorManager.DATA_Z]; // tv.setText("sensor X="+x+" Y="+y+" Z="+z); moveTo(-x,y); }

 这里面乘以3是为了让他滚得更快。

void moveTo(float x, float y) { ballX +=x; ballY +=y; if (ballX < 0 ){ ballX = 0; } if (ballY < 0){ ballY = 0; } if (ballX > container_width - ball_width){ ballX = container_width - ball_width; } if (ballY > container_height - ball_height){ ballY = container_height - ball_height; } ball.moveTo((int)ballX, (int)ballY); Log.v("ball", "ball x="+ballX+" ball y="+ballY); }

这里面有简单的边界检测的代码。

 

好了 最好还是下载源码看吧。

 

 

源码上传到:http://download.csdn.net/source/2867602

 

 

你可能感兴趣的:(android,float)