反弹小球和加速度传感器的使用(UIAccelerometer)
序言:
我们都见过人家做的小球运动,现在我们一起也做一个自己的小球运动。
今天的小球的效果是:程序运行后,将在画面中间,有一个小球,然后,你倾斜手机,小球将向着手机倾斜的方向飞移动,碰到四壁的时候将会反弹回来。
正文:
首先,我们要讲一下思路;
第一: 在UIViewController的子类里追加UIAccelerometerDelegate的协议,只有这样画面才能接收到速度的通知。接着我们创建小球的对象,和两个方向的加速度值;
代码如下:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIAccelerometerDelegate>
{
//我们创建3个对象
UIImageView*_imageView;
//小球X方向的速度
UIAccelerationValue _speedX;
//小球Y方向的速度
UIAccelerationValue _speedY;
}
@end
第二:在-(void)viewDidLoad中创建小球的对象并实现。代码
-(void)viewDidLoad{
[super viewDidLoad];
[self makeUI];
}
-(void)makeUI
{
self.view.backgroundColor=[UIColor greenColor];
//追加球体
UIImage * image=[UIImage imageNamed:@"qiu.png"];
_imageView=[[UIImageView alloc]initWithImage:image];
_imageView.center=self.view.center;
//让小球自适应
_imageView.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleTopMargin;
[self.view addSubview:_imageView];
}
第三:我们在-(void)viewWillAppear:(BOOL)animated中开始加速度传感器的使用。首先用UIAccelerometer中的定义的sharedAccelerometer方法获取UIAccelerometerd的单一实例;设置次实例的updateInterval属性设置未SELF ,这样-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acce