美文网首页
重力仿真碰撞动画

重力仿真碰撞动画

作者: 4VZhang | 来源:发表于2020-12-23 16:48 被阅读0次
gravity.gif
获取设备的重力感应,就需要导入系统的核心库
#import <CoreMotion/CoreMotion.h>
// 设备运动服务管理者
@property (nonatomic, strong) CMMotionManager *manager;
  1. 创建运动管理者,模拟设备的重力感应
        _manager = [[CMMotionManager alloc] init];
        // 设置更新精度
        _manager.deviceMotionUpdateInterval = 0.01;

2.创建一个物理仿真器,(顺便设置仿真范围)

       _animtor = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];

3.创建重力仿真行为

        _gryBehvior = [[UIGravityBehavior alloc] initWithItems:@[]];
        _gryBehvior.gravityDirection = CGVectorMake(0.0, 1.0);

4.创建物理碰撞仿真行为, 让参照视图的边框成为碰撞检测的边界

     _clnBehavior = [[UICollisionBehavior alloc] initWithItems:@[]];
     _clnBehavior.translatesReferenceBoundsIntoBoundary = YES;
      _clnBehavior.collisionDelegate = self;

5.将仿真行为添加到物理仿真器中开始仿真

       //将重力仿真行为添加到物理仿真器中开始仿真
       [self.animtor addBehavior:_gryBehvior];
       //将碰撞仿真行为添加到物理仿真器中开始仿真
       [self.animtor addBehavior:_clnBehavior];
  1. 创建仿真元素, 仿真行为添加仿真元素
         UIImageView *img =      [[UIImageView alloc] initWithImage:[NSString stringWithFormat:@"1"]];
        [self.gryBehvior addItem: img];
        [self.clnBehavior addItem: img];

7.最重要的一步,监听设备重力感应变化,并改变重力行为的重力方向


 [self.manager startDeviceMotionUpdatesToQueue:NSOperationQueue.mainQueue withHandler:^(CMDeviceMotion * _Nullable motion, NSError * _Nullable error) {
        // 设置重力方向
        self.gryBehvior.gravityDirection = CGVectorMake(motion.gravity.x, -motion.gravity.y);
    }];

demo奉上
各位看官,喜欢的留个爪!
日常记录,分享交流,不喜勿喷!

相关文章

  • 重力仿真碰撞动画

    获取设备的重力感应,就需要导入系统的核心库 创建运动管理者,模拟设备的重力感应 2.创建一个物理仿真器,(顺便设置...

  • UIDynamic-吸附-重力-碰撞-物理仿真动画

    现实生活中: 运动场==物理仿真器跑步==物理仿真行为人==仿真元素 创建步骤: // 1.创建物理仿真器,并且指...

  • IOS 物理动画之碰撞、重力

    UIDynamic物理引擎UIDynamic是IOS7引入的一项新技术。他包括UIGravityBehavior:...

  • iOS之动力行为(重力效果、碰撞效果)

    简介:属于UIKit框架 什么是动力行为* 模拟真实世界中力学相关的动画和交互系统 可以实现的效果* 重力、碰撞、...

  • 仿真动画

    标签:弹性附着行为、刚性附着行为、碰撞边缘检测、推动行为、吸附行为、重力行为1 重力行为 2 碰撞边缘检测 3 吸...

  • iOS7 UIKit动力学

    UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2...

  • UIDynamic——UIKit动力学

    UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2...

  • 物理仿真

    物理仿真就比较有意思了,之前很火的愤怒的小鸟就是全部用物理仿真完成的,使用物理仿真可以实现弹跳,重力,吸附等效果

  • 摩拜贴纸的仿真动画以及传感器

    先看看摩拜贴纸的动画: 知识点归纳: 使用重力行为 使用碰撞行为 使用弹力行为 使用屏幕旋转的传感器 代码实现: ...

  • 1.1 unity中,碰撞器与刚体的区别

    碰撞器:碰撞器是产生碰撞的前提即碰撞检测 刚体:需要模拟重力,要用到刚体; 物体间产生碰撞,主动体必须...

网友评论

      本文标题:重力仿真碰撞动画

      本文链接:https://www.haomeiwen.com/subject/lkzynktx.html