zoukankan      html  css  js  c++  java
  • 精简版—愤慨的小鸟

    • 首先我们要布局一下。使用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];
    }

    看一下效果:
    愤慨的小鸟效果

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

  • 相关阅读:
    requests+lxml+xpath爬取豆瓣电影
    hisi出的H264码流结构
    单片机复位电路原理介绍
    二极管与、或门,三极管非门电路原理
    Windows Route 路由表命令整理
    理解Windows中的路由表和默认网关
    Windows路由表详解
    linux 路由表设置 之 route 指令详解
    linux中service *** start与直接运行/usr/bin/***的区别
    Linux运行与控制后台进程的方法:nohup, setsid, &, disown, screen
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7387754.html
Copyright © 2011-2022 走看看