代码改变世界

[某鸥实训记][objective-c][第三天][作业]打地鼠X2

2015-09-10 18:57  NyaSu  阅读(178)  评论(0编辑  收藏  举报
#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