1. 程式人生 > >精簡版—憤慨的小鳥

精簡版—憤慨的小鳥

into erp article type 由於 append alt 小遊戲 tracking

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

看一下效果:
技術分享

能簡單的實現 這個小遊戲。大家能夠自己把剩下的功能完好。謝謝

精簡版—憤慨的小鳥