IOS的一个关于球碰撞的小游戏

这个游戏是关于一个球随机在屏幕上移动,可以用手指来操纵令一个球,如果两个球碰撞到一起,就表示输了,非常简单的一个游戏



在StoryBoard里定义两个UIImageView和一个start按钮



然后把这两个UIimageView跟代码链接

@property (weak, nonatomic)IBOutlet UIImageView *player;

@property (weak, nonatomic)IBOutlet UIImageView *enemy;

@property (weak, nonatomic)IBOutlet UIButton *start;


在ViewDidLoad中定义球移动的速率

 pos =CGPointMake(5.0,4.0);

如果点击了start按钮

- (IBAction)start:(id)sender {
    [self.start setHidden:YES];
    //启动一个timer,让player这个球随机移动
    randomMain = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
    
    
}

-(void)onTimer{
    [self checkCollision];
    self.enemy.center = CGPointMake(self.enemy.center.x+pos.x, self.enemy.center.y+pos.y);
    if (self.enemy.center.x > 320 || self.enemy.center.x < 0) {
        pos.x = -pos.x;
        
    }
    
    if (self.enemy.center.y > 480 || self.enemy.center.y < 0) {
        pos.y = -pos.y;
    }
}



-(void) checkCollision{
    //检测两个球是否碰撞到一起了
    if (CGRectIntersectsRect(self.player.frame, self.enemy.frame)) {
        [randomMain invalidate];
        [self.start setHidden:NO];
        
        CGRect frame = [self.player frame];
        frame.origin.x = 137.0f;
        frame.origin.y = 326.0f;
        [self.player setFrame:frame];
        
        CGRect frame2 = [self.enemy frame];
        frame2.origin.x = 137.0f;
        frame2.origin.y = 20.0f;
        [self.enemy setFrame:frame2];
        
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ball is catched" message:@"you have to play again" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:nil];
        [alert show];
    }
}
代码可以在 http://download.csdn.net/detail/baidu_nod/7556833下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值