物理仿真

1.捕捉

@interfaceViewController ()

//声明仿真器属性  保命啊
@property(nonatomic,strong)UIDynamicAnimator *animator;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController
//物理仿真器懒加载
-(UIDynamicAnimator *)animator{
    if (!_animator) {
        //1.创建物理仿真器  指定仿真范围
        _animator = [[UIDynamicAnimator alloc]initWithReferenceView:self.view];
    }
    return _animator;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
   
    //在添加行为之前 先移除上次的行为
    [self.animator removeAllBehaviors];
   
   
    //获取捕捉的点
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:touch.view];
   
    //2.创建捕捉行为 指定元素
    UISnapBehavior *snap = [[UISnapBehavior alloc]initWithItem:self.imageView snapToPoint:point];
   
    //减震 随机系数
    snap.damping = arc4random_uniform(100)/100.0;
   
    //3.添加到物理仿真器中
    [self.animator addBehavior:snap];

}

2.重力  碰撞

- (void)viewDidLoad {

[super viewDidLoad];
    // 1.创建物理仿真器  顺便指定仿真范围
    UIDynamicAnimator *animator = [[UIDynamicAnimator alloc]initWithReferenceView:self.view];
    //需要保命啊
    self.animator = animator;
   
    //2.创建重力仿真行为  指定仿真元素
    UIGravityBehavior *gravity = [[UIGravityBehavior alloc]initWithItems:@[self.blueView]];
   
    //3.将行为添加到物理仿真器中
    [self.animator addBehavior:gravity];
   
    //给one two 添加碰撞行为
    //1.创建碰撞仿真行为  指定仿真元素
    UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:@[self.one,self.two,self.blueView]];
    //边界
    collision.translatesReferenceBoundsIntoBoundary = YES;
    //2.将碰撞行为也添加到物理仿真器中
    [self.animator addBehavior:collision];
}

时间: 2024-11-11 00:00:07

物理仿真的相关文章

IOS开发-UIDynamic(物理仿真)简单使用

UIDynamic是从IOS7开始引入的一种新技术,隶属于UIKit框架,我们可以认为是一种物理引擎能模拟和仿真现实生活中的物理现象,比如重力,弹性碰撞等. 可以让开发人员远离物理公式的情况下,实现一些物理仿真效果. 这里简单介绍一下重力,碰撞,捕捉的用法. 先介绍一下使用的大致步骤 创建物理仿真器 创建相应的物理仿真行为 将物理仿真行为添加到物理仿真器 一,重力与碰撞 提前在StoryBoard准备两个UIView,一个红色,一个蓝色.蓝色在红色的下方,保证红色下落能碰到蓝色的view. 1

UIDynamic(物理仿真)

UIDynamic是从IOS7开始引入的一种新技术,隶属于UIKit框架,我们可以认为是一种物理引擎能模拟和仿真现实生活中的物理现象,比如重力,弹性碰撞等. 可以让开发人员远离物理公式的情况下,实现一些物理仿真效果. 这里简单介绍一下重力,碰撞,捕捉的用法. 先介绍一下使用的大致步骤 创建物理仿真器 创建相应的物理仿真行为 将物理仿真行为添加到物理仿真器 一,重力与碰撞 提前在StoryBoard准备两个UIView,一个红色,一个蓝色.蓝色在红色的下方,保证红色下落能碰到蓝色的view. 1

UIDynamic物理仿真

UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象, 比如重力.弹性碰撞等现象,UIKit动力具有可组合.可重用和声明式的特点 物理引擎的价值 广泛用于游戏开发,经典成功案例是“愤怒的小鸟” 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 要想使用UIDynamic来实现物理仿真效果,大致的步骤如下 1.创建一个物理仿真器(顺便设置仿真范围) 2.创

【iOS开发系列】物理仿真动画UIDynamic (1)

iOS开发拓展篇-UIDynamic(简单介绍) [一]简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象 如:重力.弹性碰撞等现象 2.物理引擎的价值 广泛用于游戏开发,经典成功案例是"愤怒的小鸟" 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 3.知名的2D物理引擎 Box2d Chipmun

iOS学习_UIDynamic(物理仿真)学习笔记

UIDynamic : 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力.弹性碰撞等 使用步骤 : 1.创建物理仿真器 : [[ UIDynamicAnimator alloc] initWithReferenceView : ]//View表示物理仿真的范围 2.创建物理仿真行为,添加仿真元素 : [[UIGravityBehavior alloc]initWithItems:];//放进去的是数组 3.将物理仿真行为添加到仿真器中 : [anim addBehavior:gr

物理仿真元素

来自为知笔记(Wiz)

物理虚拟仿真实验

大学物理仿真实验: (1)单摆法测量重力加速度 (2)钢丝杨氏模量的测定(3)光电效应和普朗克常量的测定 (4)密立根油滴实验(5)迈克耳孙干涉仪 (6)偏振光的观察与研究(7)示波器实验(8)双臂电桥测低电阻实验(9)用凯特摆测重力加速度(10)声速的测量(11)不良导体热导率的测量 (12)动态磁滞回线的测量(13)分光计实验(14)干涉法测微小量(15)霍尔效应实验 (16)检流计的特性研究(17)交流电桥(18)交流谐振电路及介电常数测量(19)三线摆法测刚体的转动惯量(20)直流电桥测

UIDynamic仿物理引擎-浮动碰撞效果-b

最近产品提了个需求(电商的APP-两鲜),需要在APP背景加上几个水果图案在那里无规则缓慢游荡...模仿 天天果园 APP的.好吧,那我就在网上找了很多文章,总结一下写个demo.效果如下: Mou icon 这里用到的是UIDynamic这个类. UIDynamic简介 一.简介 注意:UIKit动力学的引入,并不是为了替代CA或者UIView动画,在绝大多数情况下CA或者UIView动画仍然是最有方案,只有在需要引入逼真的交互设计的时候,才需要使用UIKit动力学它是作为现有交互设计和实现的

iOS开发——高级篇——UIDynamic 物理引擎

一.UIDynamic 1.简介什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力.弹性碰撞等现象 物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 知名的2D物理引擎Box2dChipmunk 2.使用步骤要想使用UIDynamic来实现物理仿真效果,大致的步骤如下