iOS:如何在评分更新后保持UIImageView不被重置?

时间:2016-04-19 13:16:47

标签: ios objective-c uiimageview

我试图制作的游戏很简单。 UIImageView火球从屏幕顶部落下,触摸屏用于移动另一个UIImageView Dustin以避开它。

一旦火球到达屏幕底部,它就会重新回到顶部,用户的得分增加1.问题是,在我添加评分功能后,Dustin UIImage重置为原来的火球到达底部后的位置。没有评分方法,Dustin的图像不会重置。得分如何导致我的imageview的位置重置?来自ViewController的大多数代码都在下面。

int theScore;

- (void)viewDidLoad {
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.
    [self initializeTimer];
}

- (void)updateScore {
    theScore = theScore + 1;

    _score.text = [[NSString alloc] initWithFormat:@"%d",theScore];
}

- (void) initializeTimer {
    if(theTimer == nil)
    {
        theTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(gameLogic:)];
    }

    theTimer.frameInterval = 1;
    [theTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}

- (void) gameLogic:(CADisplayLink *) theTimer {
    if(!CGRectIntersectsRect(_fireball.frame, _Dustin.frame)){
        if(_fireball.center.y >600){
            _fireball.center = CGPointMake(0, 0);

            [self updateScore];
        }

        _fireball.center = CGPointMake(_fireball.center.x, _fireball.center.y+4);
    }
    else{
        }
}

- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event {
    UITouch *touch = [touches anyObject];
    _firstTouch = [touch locationInView:self.view];
    _lastTouch = [touch locationInView:self.view];

    _Dustin.center = CGPointMake(_firstTouch.x, _Dustin.center.y);
}

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    _firstTouch = [touch locationInView:self.view];
    _lastTouch = [touch locationInView:self.view];

    _Dustin.center = CGPointMake(_firstTouch.x, _Dustin.center.y);
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    _firstTouch = [touch locationInView:self.view];
    _lastTouch = [touch locationInView:self.view];

    _Dustin.center = CGPointMake(_firstTouch.x, _Dustin.center.y);
}

0 个答案:

没有答案