美文网首页
动力无敌小弹球

动力无敌小弹球

作者: Rayla_周周 | 来源:发表于2017-07-25 17:24 被阅读0次

主要功能描述:页面中的小球可以根据手机倾斜的方向做运动

运用的知识:加速计、UIDynamic物理仿真行为

具体代码:

#import "ViewController.h"

@interface ViewController ()<UIAccelerometerDelegate>
@property (strong, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet UIView *grayView;
@property (weak, nonatomic) IBOutlet UIView *blueView;
@property (strong, nonatomic) UIDynamicAnimator *animator;
@property (strong, nonatomic) UIGravityBehavior *gravity;

@end

@implementation ViewController
- (UIDynamicAnimator *)animator {
    if (_animator == nil) {
        _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    }
    return _animator;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.redView.layer.cornerRadius = 25;
    self.redView.layer.masksToBounds = YES;
    
    self.grayView.layer.cornerRadius = 25;
    self.grayView.layer.masksToBounds = YES;
    
    self.blueView.layer.cornerRadius = 25;
    self.blueView.layer.masksToBounds = YES;
    //获得单例对象
    UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
    //设置代理
    accelerometer.delegate = self;
    //设置采样间隔 0.1 
    accelerometer.updateInterval = 0.1;
    [self testGravity];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}


-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    //   NSLog(@"x加速度%f**********y加速度%f*******z加速度%f",acceleration.x,acceleration.y,acceleration.z);
    self.gravity.gravityDirection = CGVectorMake(acceleration.x-0.1, -(acceleration.y-0.1));
    
}


/// 设置重力行为
- (void)testGravity {
    // 1.创建仿真行为(进行怎样的仿真效果?)
    // 重力行为
    self.gravity = [[UIGravityBehavior alloc] initWithItems:@[self.redView,self.grayView,self.blueView]];
    self.gravity.magnitude = 10;
    
    // 2.添加物理仿真元素
    //    [self.gravity addItem:self.redView];
    
    /// 添加碰撞检测行为
    UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:@[self.redView,self.grayView,self.blueView]];
    // 添加碰撞边界
    collision.translatesReferenceBoundsIntoBoundary = YES;
    
    
    UIDynamicItemBehavior *itemBehave = [[UIDynamicItemBehavior alloc] initWithItems:@[self.redView,self.grayView,self.blueView]];
    /// 弹性系数
    itemBehave.elasticity = 0.4;
    
    // 3. 执行仿真,让物理仿真元素执行仿真行为
    [self.animator addBehavior:self.gravity];
    [self.animator addBehavior:collision];
    [self.animator addBehavior:itemBehave];
}



@end

相关文章

  • 动力无敌小弹球

    主要功能描述:页面中的小球可以根据手机倾斜的方向做运动 运用的知识:加速计、UIDynamic物理仿真行为 具体代码:

  • 彩色弹球-好玩物理弹球技术支持

    彩色弹球-好玩物理弹球 彩色动物 彩色弹球 越弹越过瘾 全面适配IPhoneX 好玩的弹球游戏,快来体验吧~ ...

  • 小弹球的旅行

    有个小弹球,它的梦想是去很远的地方旅行。它每天愁眉苦脸,认为圆圆的身体只会滚来滚去。 一天,一个小女孩从草丛里捡起...

  • [智力题]选红球

    你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选...

  • 疯狂弹球

    最好玩的弹球游戏——疯狂弹球震撼来袭!最简单!最休闲!最疯狂!最与众不同的弹球游戏! 上手操作简单,玩法新颖有趣,...

  • iOS 仿英雄联盟掌盟,重力弹球界面,桌球撞球效果

    PZXDynamicAnimatorView 重力弹球界面,以及滑动弹球的封装 下载地址:https://gith...

  • 弹球

    少年每争弹球戏,刨坑竞准斗豪强,今见弹球铺满地,依旧口水八丈长。

  • 弹球

    今天下午,我写完作业跟着妈妈上大楼玩,到了那,我看见弹球机,看起来很好玩,我就向妈妈要硬币,我玩了三次,赢的...

  • 弹球

    今天看到儿子在玩跳跳球,突然就想起了小时候常玩的玻璃球。那时候,我们都叫它弹球。几个小伙伴,在地上挖出一个大点的土...

  • 弹球

    阴雨天持续了很久,明明是春天,给人的感觉却像是深秋,所以当太阳明晃晃的出来后,人们压抑了很长时间的情绪终于可以释放...

网友评论

      本文标题:动力无敌小弹球

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