关灯游戏的实现

    运用button写的一个关灯游戏

   


    声明了一个属性NSMutableArray *arr;

    _arr = [[NSMutableArray alloc] init];

    创建10行8列的button矩阵

   for (int i =0; i < 10; i++) {

       for (int j =0; j < 8; j++) {

            UIButton *button = [UIButtonbuttonWithType:UIButtonTypeSystem];

            button.frame =CGRectMake(27.5 + j *40, 20 + i *40, 35, 35);

    给button添加背景图片

            [button setBackgroundImage:[UIImageimageNamed:@"12"]forState:UIControlStateNormal];

    将button添加至数组

            [_arraddObject:button];

            [self.viewaddSubview:button];

    给button一个点击事件

            [button addTarget:selfaction:@selector(buttonDidPress:)forControlEvents:UIControlEventTouchUpInside];

        }

    }

    做了一个重新开始的button按钮


    PS:后面的水印是失误,请忽略 - -

    UIButton *button1 = [UIButtonbuttonWithType:UIButtonTypeSystem];

    button1.frame =CGRectMake(0,500, self.view.frame.size.width,50);

    button1.backgroundColor = [UIColorcyanColor];

    [button1 setTitle:@"重新开始"forState:UIControlStateNormal];

    [button1 addTarget:selfaction:@selector(buttonNewGame:)forControlEvents:UIControlEventTouchUpInside];

    [self.viewaddSubview:button1];


重新开始的点击事件

-(void)buttonNewGame:(UIButton *)sender {

   for (UIButton *buttonin _arr) {

        [button setBackgroundImage:[UIImageimageNamed:@"12"]forState:UIControlStateNormal];

    }

}


判断改变背景图片的点击事件

-(void)buttonDidPress:(UIButton *)sender {

这里的打印是找bug时用的

//    NSLog(@"A");

   遍历数组里的所有button

   for (UIButton *buttonin _arr) {

判断条件,找出与sender相邻的button

       if (fabs(button.frame.origin.x - sender.frame.origin.x) + fabs(button.frame.origin.y - sender.frame.origin.y) == 40) {

//            NSLog(@"B");

    改变上面找出的button背景图片

            if ([[button backgroundImageForState:UIControlStateNormal]isEqual:[UIImageimageNamed:@"12"]]) {

//                NSLog(@"C");

                [button setBackgroundImage:[UIImageimageNamed:@"23"]forState:UIControlStateNormal];

            }else {

                [button setBackgroundImage:[UIImageimageNamed:@"12"]forState:UIControlStateNormal];

            }

        }

    }

    改变sender背景图片

    if ([[senderbackgroundImageForState:UIControlStateNormal]isEqual:[UIImageimageNamed:@"23"]]) {

        [(UIButton *)sendersetBackgroundImage:[UIImageimageNamed:@"12"]forState:UIControlStateNormal];

    }else {

        [(UIButton *)sendersetBackgroundImage:[UIImageimageNamed:@"23"]forState:UIControlStateNormal];

    }


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值