iOS基础-加速器使用2(小球乱撞)

加速器使用注意:

UIAccelerometer使用:

  1. 单例创建
  2. 设置代理
  3. 设置采样间隔

注:手机呈肖像模式时,


Snip20150331_1.png
@interface ViewController ()<UIAccelerometerDelegate]] >

@property (weak, nonatomic) IBOutlet UIImageView *ball;
@property (nonatomic, assign) CGPoint point;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
//    单例创建
    UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
//    设置代理
    accelerometer.delegate = self;

//    设置采样间隔 -- 每秒钟60次
    accelerometer.updateInterval = 1 / 60.0;
}

#pragma mark - UIAccelerometerDelegate
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    NSLog(@"x - %f y - %f z - %f",acceleration.x, acceleration.y, acceleration.z);
    _point.x += acceleration.x;
    _point.y -= acceleration.y;

    CGRect rect = self.ball.frame;
    rect.origin.x += acceleration.x;
    rect.origin.y += acceleration.y;

    self.ball.frame = rect;

    if (self.ball.frame.origin.x <= 0) { // 小球x值到达屏幕最左边
        self.ball.x = 0;
        _point.x *= -0.3;
    }
    if (self.ball.frame.origin.y <= 0) { // 小球y值到达屏幕最上边
        self.ball.y = 0;
        _point.y *= -0.3;
    }
    if (CGRectGetWidth(self.ball.frame) >= self.view.width) { // 小球x值到达屏幕最右边
        self.ball.x = self.view.width - self.ball.width;
        _point.x *= -0.3;
    }
    if (CGRectGetHeight(self.ball.frame) >= self.view.height) { // 小球y值到达屏幕最下边
        self.ball.y = self.view.height = self.ball.height;
        _point.y *= -0.3;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,919评论 6 13
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,391评论 30 472
  • Git是目前世界上最先进的分布式版本控制系统,也是当下最流行的版本控制,不管是IT行业,还是小说家等等,使用了Gi...
    程序猿在广东阅读 5,046评论 2 14

友情链接更多精彩内容