2016-11-06 65 views
0

我正在編寫遊戲,當用戶觸摸屏幕的左側或右側時,「延續水平」會增加。目前僅在用戶第一次觸摸屏幕時發生增加(我的代碼如下)。我希望只要用戶將手指放在屏幕上,就可以應用增加功能。我需要做什麼?對持續觸摸採取行動,而不是僅在觸及時觸發:

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

     if (self.x >= touchPoint.x){ 
      self.sustain += 1; 

     }else if (self.x <= touchPoint.x){ 
      self.sustain += 1; 

     } 
} 

回答

1

increased.Currently維持水平,當你第一次觸摸屏幕越來越多,我想被應用,只要用戶擁有自己的手指在屏幕上的力

你當用戶握住手指時不會收到任何消息;你的下一條消息將是touchesEnded。所以你需要啓動一個定時器,並在每次定時器啓動時按照需要繼續增加力量,直到獲得touchesEnded

0

你需要弄清楚你想要這種增加發生的速度有多快。然後使用計時器機制來更改值。這可能是一個NSTimer反覆觸發在一定的時間間隔:啓動計時器,當你得到touchesBegan:並停止它,當你touchesEnded:

如果您使用SpriteKit,現場有一個內置的定時器觸發其update:方法。您可以使用標誌來指示觸摸存在,並更改update:中的「維持」值。