2015-10-19 53 views
0

在.h文件中,我设置了Goodguy,Building12NSTimer和方法falldownIm试图设置连接到图像的NSTimer,以便它仅在与其他图像交互时才有效

IBOutlet UIImageView *Goodguy; 
IBOutlet UIImageView *Building1; 
IBOutlet UIImageView *Building2; 
NSTimer *GoodguyFall; 

-(void)falldown; 

在我成立了GoodguyFallNSTimer,并在图像触及另一个图像就会无效NSTimer代码.m文件。我如何设置它,使计时器在未触及“建筑物”时有效?

-(void)viewDidLoad{ 
    GoodguyFall = [ NSTimer scheduledTimerWithTimeInterval: 0.03 target:self selector:@selector(falldown) userInfo:nil repeats:YES]; 

} 

-(void)falldown{ 
    Goodguy.center = (CGPointMake(Goodguy.center.x, Goodguy.center.y + 6)); 
} 

    if (CGRectIntersectsRect(Goodguy.frame, Building1.frame)){ 
     [GoodguyFall invalidate]; 
    } 
    if (CGRectIntersectsRect(Goodguy.frame, Building2.frame)){ 
     [GoodguyFall invalidate]; 
    } 
} 
+0

请描述您从发布的代码中收到的结果。 – Daniel

+0

goodguy在接触到building1后不会掉下来,我如何在与每个建筑物互动后使goodguy掉落@DanielZhang –

回答

0

为了让Goodguy不要触摸建设后再次回落,则需要安排另一个计时器。这可以通过

-(void)BuidlingMoving{ 
    if (CGRectIntersectsRect(Goodguy.frame, Building1.frame)){ 
     [GoodguyFall invalidate]; 
     GoodguyFall = nil; 
    } 
    else if (CGRectIntersectsRect(Goodguy.frame, Building2.frame)){ 
     [GoodguyFall invalidate]; 
     GoodguyFall = nil; 
    } else if (GoodguyFall == nil) { 
     GoodguyFall = [ NSTimer scheduledTimerWithTimeInterval: 0.03 target:self selector:@selector(falldown) userInfo:nil repeats:YES]; 
    } 
} 

完成本方案中,我处理,其中Goodguy不再与建筑物接触的情况下。

+0

我不知道我会在哪里再次放置计时器,我希望在他是不与建筑物互动,我该怎么办? @DanielZhang –

+0

告诉我,goodguy碰到大楼会发生什么。从你的代码中,goodguy停止,没有任何反应。你想要发生什么? Goodguy如何继续前进? – Daniel

+0

goodguy从不动,除非他跌倒。建筑物移动。我没有把这些建筑物的代码向上移动,你也想要我吗? @DanielZhang –

相关问题