博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
精简版—愤慨的小鸟
阅读量:6845 次
发布时间:2019-06-26

本文共 1516 字,大约阅读时间需要 5 分钟。

  • 首先我们要布局一下。使用sizeclass来布局:

布局

  • 连线过来:
@property (weak, nonatomic) IBOutlet UIButton *bird;@property (strong, nonatomic) IBOutletCollection(UIImageView) NSArray *ices;

对于冰块的连线。由于我们这里的冰块有4块,所以我们直接连的是一个数组

  • 懒载入一个UIDynamicAnimator
@property (strong, nonatomic) UIDynamicAnimator *animator;- (UIDynamicAnimator *)animator{    if ( !_animator) {        _animator = [UIDynamicAnimator new];    }    return _animator;}
  • 接下来,我们给监听鸟的点击事件
- (IBAction)birdAction:(id)sender{    // 给鸟和冰加入重力    NSMutableArray *tempArrM = [NSMutableArray array];    [tempArrM addObject:self.bird];    [tempArrM addObjectsFromArray:self.ices];    UIGravityBehavior *gravity = [[UIGravityBehavior alloc] initWithItems:tempArrM];    [self.animator addBehavior:gravity];    // 给鸟和冰加入碰撞    UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:tempArrM];    [collision setTranslatesReferenceBoundsIntoBoundary:YES];    // 加入屏幕边缘碰撞    UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.view.bounds];    [collision addBoundaryWithIdentifier:@"BoundsTest" forPath:path];    [self.animator addBehavior:collision];    /**     UIPushBehaviorModeContinuous,   持续的力     UIPushBehaviorModeInstantaneous     瞬间的力     */    // 给鸟加入推力    UIPushBehavior *push = [[UIPushBehavior alloc] initWithItems:@[self.bird] mode:UIPushBehaviorModeInstantaneous];    // 力的方向    push.magnitude = 5.0;    push.angle = 2 * M_PI;    [self.animator addBehavior:push];}

看一下效果:

愤慨的小鸟效果

能简单的实现 这个小游戏。大家能够自己把剩下的功能完好。谢谢

转载于:https://www.cnblogs.com/gavanwanggw/p/7387754.html

你可能感兴趣的文章
python设计模式(十三):解释器模式
查看>>
列式存储系列(一)C-Store
查看>>
MINIEYE周翔:6年后更加清晰自己的定位是什么
查看>>
使用Java SDK实现离线签名
查看>>
OSS工具篇
查看>>
OpenStack与Kubernetes融合架构下的优化实践
查看>>
Linux基础命令---cpio
查看>>
10 分钟让你明白 MySQL 是如何利用索引的
查看>>
免费报名 | 十年沉淀 阿里双11数据库技术峰会北京站邀您同行
查看>>
IS UNKNOWN
查看>>
jQuery学习(第二天)
查看>>
SQL Server 多表数据增量获取和发布 2.2
查看>>
CAShapeLayer 类解析
查看>>
Vue 组件库 HeyUI@1.17.0 发布,新增 Skeleton 组件
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 31 章 逻辑复制_31.2. 订阅
查看>>
java编程学习笔记——mybatis SQL注入问题
查看>>
计算机操作原理进程调度算法---先来先服务,短进程优先(C语言)
查看>>
docker 常用命令
查看>>
一题带你彻底理解 sleep() 和 wait()
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 24 章 日常数据库维护工作_24.2. 日常重建索引...
查看>>