zoukankan      html  css  js  c++  java
  • [某鸥实训记][objective-c][第三天][作业]打地鼠X2

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @property (nonatomic,strong) NSTimer *timer;
    @property (nonatomic,strong) NSTimer *mouseTimer;
    @property (nonatomic,strong) NSMutableArray *arr;
    @property (nonatomic,strong) NSMutableArray *hit;
    @property (nonatomic,strong) UIButton *startButton;
    @property (nonatomic,strong) UIImageView *mouse;
    @property (nonatomic,strong) UILabel *scoreLabel;
    @property (nonatomic) NSInteger tag;
    @property (nonatomic) NSInteger score;
    @property (nonatomic) BOOL isStart;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        _score = 0;
        UIImageView  *backgroundImage;
        UIImage *image = [UIImage imageNamed:@"back.png"];
        backgroundImage = [[UIImageView alloc] initWithImage:image];
        backgroundImage.frame = self.view.frame;
        [self.view addSubview:backgroundImage];
        _scoreLabel = [[UILabel alloc] init];
        _scoreLabel.text = @"0";
        _scoreLabel.frame = CGRectMake(245, 130, 100, 40);
        [self.view addSubview:_scoreLabel];
        _startButton = [UIButton buttonWithType:UIButtonTypeSystem];
        _startButton.frame = CGRectMake(60, 130, 60, 50);
        _startButton.backgroundColor = [UIColor lightGrayColor];
        [_startButton setTitle:@"开始" forState:UIControlStateNormal];
        [_startButton addTarget:self action:@selector(addMouseTimer) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:_startButton];
        
        UIImage *hole = [UIImage imageNamed:@"emptyhole.png"];
        _arr = [[NSMutableArray alloc] initWithCapacity:6];
        _hit = [[NSMutableArray alloc] initWithCapacity:3];
        for(int i = 0;i<6;i++){
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",i+1]];
            [_arr addObject:image];
        }
        for(int i = 12;i>6;i--){
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",i-6]];
            [_arr addObject:image];
        }
        for(int i = 0;i<3;i++){
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"hit.png"]];
            [_hit addObject:image];
        }
        
        for(int i=0;i<7;i++){
            for(int j=0;j<5;j++){
                UIButton *mouse = [UIButton buttonWithType:UIButtonTypeSystem];
                [mouse setBackgroundImage:hole forState:UIControlStateNormal];
                mouse.tag = 100+i*5+j;
                mouse.frame = CGRectMake(20+75*j, 300+50*i, 50, 50);
                [mouse addTarget:self action:@selector(hit:) forControlEvents:UIControlEventTouchUpInside];
                [self.view addSubview:mouse];
            }
        }
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)hit:(UIButton *)sender{
        if(sender.tag ==_tag){
            [_mouse stopAnimating];
            UIButton *button = (UIButton *)[self.view viewWithTag:_tag];
            _mouse = [[UIImageView alloc] init];
            _mouse.frame = button.frame;
            _mouse.animationImages = _hit;
            _mouse.animationRepeatCount = 1;
            _mouse.animationDuration = 0.3;
            [self.view addSubview:_mouse];
            [_mouse startAnimating];
            _tag = arc4random()%35+1000;
            _score += 10;
            NSLog(@"%li",(long) _score);
            _scoreLabel.text = [NSString stringWithFormat:@"%d",(int)_score];
        }
    }
    
    - (void)addMouseTimer{
        if (_isStart==NO) {
            _score = 0;
            _scoreLabel.text = [NSString stringWithFormat:@"%d",(int)_score];
            [_startButton setTitle:@"停止" forState:UIControlStateNormal];
            _timer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(appear) userInfo:nil repeats:YES];
            _isStart = !_isStart;
        }else{
            [_startButton setTitle:@"重新开始" forState:UIControlStateNormal];
            [_timer invalidate];
            _isStart = !_isStart;
        }
    }
    
    - (void)appear{
        _tag = arc4random()%35+100;
        UIButton *button = (UIButton *)[self.view viewWithTag:_tag];
        [_mouse stopAnimating];
        _mouse = [[UIImageView alloc] init];
        _mouse.frame = button.frame;
        _mouse.animationImages = _arr;
        _mouse.animationRepeatCount = 1;
        _mouse.animationDuration = 1.2;
        [self.view addSubview:_mouse];
        [_mouse startAnimating];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
    }
    
    @end
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @property (nonatomic,strong) UIImageView *holeImage;
    @property (nonatomic,strong) UIButton *button;
    @property (nonatomic,strong) NSTimer *timer;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"back.png"]];
        backgroundImage.frame = self.view.frame;
        [self.view addSubview:backgroundImage];
        
        backgroundImage.userInteractionEnabled = YES;
        for (int i=0; i<6; i++) {
            for(int j = 0; j<6; j++){
                _holeImage = [[UIImageView alloc] init];
                _holeImage.frame = CGRectMake(40+j*50, 290+i*50, 50, 50);
                _holeImage.image = [UIImage imageNamed:@"emptyhole.png"];
                _holeImage.userInteractionEnabled = YES;
                _holeImage.tag = 101+6*i+j;
                [self.view addSubview:_holeImage];
                
                _button = [UIButton buttonWithType:UIButtonTypeSystem];
                _button.frame = CGRectMake(0, 0, 50, 50);
                _button.tag = 137+6*i+j;
                [_button addTarget:self action:@selector(hit:) forControlEvents:UIControlEventTouchUpInside];
                [_holeImage addSubview:_button];
            }
        }
        [self addTimer];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)hit:(UIButton *)sender{
        NSInteger num = sender.tag;
        _holeImage = (UIImageView *)[self.view viewWithTag:num-36];
        if(_holeImage.isAnimating == YES){
            [_holeImage stopAnimating];
            NSMutableArray *arr = [[NSMutableArray alloc] init];
            UIImage *image = [UIImage imageNamed:@"hit.png"];
            UIImage *image1 = [UIImage imageNamed:@"hit.png"];
            [arr addObject:image];
            [arr addObject:image1];
            UIImageView *imageView = [[UIImageView alloc] init];
            imageView.frame = CGRectMake(0, 0, 50, 50);
            imageView.animationImages = arr;
            imageView.animationDuration = 0.2;
            imageView.animationRepeatCount = 1;
            [imageView startAnimating];
            [_holeImage addSubview:imageView];
        }
    }
    
    - (void)addTimer{
        self.timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(playImage) userInfo:nil repeats:YES];
    }
    
    - (void)playImage{
        NSMutableArray *animationTemp = [[NSMutableArray alloc] initWithCapacity:10];
        for (int i = 0; i<6; i++) {
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",i+1]];
            [animationTemp addObject:image];
        }
        UIImageView *selectedHole = (UIImageView *)[self.view viewWithTag:arc4random()%36+101];
        selectedHole.animationDuration = 1;
        selectedHole.animationImages = animationTemp;
        selectedHole.animationRepeatCount = 1;
        [selectedHole startAnimating];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    7.12.2
    7.12.1
    7.11.8
    循环测试条件前缀和后缀的区别
    7.11.7 两个版本
    7.11.5
    7.12 vowels.c 程序
    7.11 animals.c 程序
    7.6.2 break 语句
    7.10 break.c 程序
  • 原文地址:https://www.cnblogs.com/NyaSu/p/4798851.html
Copyright © 2011-2022 走看看