2016-11-06 63 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:中的“维持”值。