重力感应代码:

#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>@interface ViewController ()
//创建管理对象 水平仪
@property (nonatomic, strong) CMMotionManager *manager;
//创建动画对象
@property (nonatomic, strong) UIDynamicAnimator *dyanimat;
//重力
@property (nonatomic, strong) UIGravityBehavior *gravit;
//碰撞
@property (nonatomic, strong) UICollisionBehavior *collision;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];}#pragma mark - 实例化对象
- (CMMotionManager *)manager {if (_manager == nil) {_manager = [[CMMotionManager alloc] init];_manager.deviceMotionUpdateInterval = 0.01;}return _manager;
}- (UIDynamicAnimator *)dyanimat {if (_dyanimat == nil) {_dyanimat = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];}return _dyanimat;
}- (UIGravityBehavior *)gravit {if (_gravit == nil) {_gravit = [[UIGravityBehavior alloc] init];}return _gravit;
}- (UICollisionBehavior *)collision {if (_collision == nil) {_collision = [[UICollisionBehavior alloc] init];_collision.translatesReferenceBoundsIntoBoundary = YES;}return _collision;
}#pragma mark - 给对象添加动画
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {//最多可添加50个if (self.view.subviews.count >= 50) {NSLog(@"已到上限");return;}//获取手指的点UITouch *touch = touches.anyObject;CGPoint point = [touch locationInView:self.view];//创建及切圆角UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];view.layer.cornerRadius = 10;view.layer.masksToBounds = YES;//手指的点就是view的中心点view.center = point;//随机颜色view.backgroundColor = [UIColor colorWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];[self.view addSubview:view];//将对象添加到动画里[self.dyanimat addBehavior:self.gravit];[self.dyanimat addBehavior:self.collision];// 为view添加重力效果[self.gravit addItem:view];// 为view添加碰撞效果[self.collision addItem:view];// 开始监听[self.manager startDeviceMotionUpdatesToQueue:NSOperationQueue.mainQueue withHandler:^(CMDeviceMotion * _Nullable motion, NSError * _Nullable error) {// 设置重力方向self.gravit.gravityDirection = CGVectorMake(motion.gravity.x, -motion.gravity.y);}];//打印添加的控件的个数NSLog(@"%zd - %@", self.view.subviews.count, view);}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end   

下面是模拟器截图,正常情况是真机去测试的,因为水平仪模拟器是没办法测的。

转载于:https://www.cnblogs.com/wm941142146/p/9272278.html

ios整理(五)小应用-重力感应相关推荐

  1. android 传感器小游戏,重力感应球游戏

    重力感应球游戏是一款休闲益智类闯关游戏,有采用卡通的画风设计,超有趣的闯关玩法模式,在这里各种不同的游戏关卡等你来挑战,带给玩家最轻松有趣的闯关乐趣,非常的有意思,喜欢的小伙伴还在等什么,快来下载看看 ...

  2. android小游戏模版—重力感应

    好久没更新博客了,今天来谈谈android小游戏---重力感应,一般在游戏里运用的比較多,比方这类游戏有:神庙逃亡.极品飞车,平衡球.三围重力迷宫,重力赛车等. 首先什么是重力感应.重力感应是指如今手 ...

  3. iOS 6.1锁屏音乐控制界面升级 玩转重力感应

    苹果iOS升级中最有乐趣的部分之一就是发现设计者做出的微妙的小变动.在昨天刚刚升级的iOS 6.1里,有一个变化初看上去仅仅是表面上的美化,但是经过一段时间之后,你会不禁感叹为什么它没有早些推出.我们 ...

  4. iOS 重力感应 学习1 陀螺仪 水平仪 指南针

    小球可以随着重力感应 四处乱撞. 放大了坐标位移 就可以看见小球动了. 然后规定小球的路径 当滑到中间时候 弹出一张图片 作为提示. 我做了一个小demo 效果不错哦 CMMotionManager ...

  5. iOS设备使用重力感应

    首先在你需要检测重力感应的UIView或者UIViewController添加委托<UIAccelerometerDelegate> 然后自己定义一个 UIAccelerometer *a ...

  6. 关于物理引擎的使用,及其重力感应的小test

    好久没写博文了,过去那些天比较忙,一直在做点别的东西,不过作为小菜的我也不忘记学习,现在跟大家分享下我的小知识吧! 首先建立个带有box2d物理引擎的项目,在头文件中加入 public:// Here ...

  7. iOS - 加速计(重力感应)

    先上效果图 小球根据重力感应 然后降落 并且有弹起效果 一.原理 重力感应的三维空间 xyz的坐标系如图 (注意:和frame的坐标的y不同) x 向左: 负数 向右:正数 y 向上: 正数 向下:负 ...

  8. mui教程2——窗口管理、调用相册、调用摄像头、调用重力感应、微信朋友圈界面(仿制)分析

    一.窗口管理 1,页面初始化 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5 ...

  9. Unity3D 游戏引擎之平面小球重力感应详解【转】

    http://blog.csdn.net/xys289187120/article/details/6969333       手机重力感应应该对大多数开发者并不陌生,在新一代智能手机Android  ...

  10. 华为M3平板升级鸿蒙系统,华为m3平板 日版刷国行 没有重力感应怎么解决?(篇二)...

    华为m3平板 日版刷国行 没有重力感应怎么解决?(篇二) 2020-01-13 20:21:39 12点赞 42收藏 29评论 篇二的理由华为m3平板 日版刷国行 没有重力感应怎么解决?小编注:此篇文 ...

最新文章

  1. SAP Retail系统门店主数据维护思路
  2. 为什么Python不是未来的编程语言?
  3. CNN已老,GNN来了:重磅论文讲述深度学习的因果推理
  4. python操作csv文件
  5. wcf服务和寄主的关系
  6. 机器人学习--ROS/AMCL实现初始化粒子撒满整张地图和分步收敛
  7. postgresql 基本语法
  8. element手机验证格式_vue封装 element-ui form表单验证 正则匹配手机号 自定义校验表格内容...
  9. 【100亿次的挑战】之春晚控制后台故事分享
  10. Spring自学日志03(作用域,自动装配)
  11. 关于MySQL内存泄露如何排查的一些思路
  12. C#:XML操作类--转
  13. 教你快速运行谷歌EfficientDet目标检测
  14. 小米随身WIFI去掉云U盘的方法
  15. 蓝桥杯 方格问题 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同
  16. FileOutputStream方法创建文件并写入数值
  17. react hook 造轮子
  18. 75-CentOS-Docker构建nginx镜像
  19. 面试题 16.17. 连续数列
  20. 九联unt401h装软件_九联UNT401H南传刷机包 V1.0 免费版

热门文章

  1. 【转】Windows的多线程编程,C/C++
  2. JVM学习总结四——内存分配策略
  3. pdf转txt出现句子异常中断,如何连接被切断的字符串
  4. 文本生成系列之预训练模型
  5. 数据增强 | 小综述
  6. 手推公式+项目实操复现!《机器学习》完整详解
  7. 【linux】最常用 150 个Linux命令汇总
  8. 资源 | 近500页python深度学习实践应用pdf
  9. 调参心得:超参数优化之旅
  10. NLP—2.语言模型及文本表示