2016-11-06 8 views
0

私はゲームを書いています。ユーザーが画面の左右に触れると、「サステイン・レベル」が上がります。現在のところ、ユーザーが画面に最初に触れたときにのみ増加します(私のコードは下にあります)。ユーザーが画面上に指を置いている限り、増加を適用したい。私は何をしなければならないのですか?あなたが最初の画面をタッチするとtouchesBeganになったときだけでなく、持続的なタッチで行動してください:

-(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

この増加がどれだけ速く起こるかを把握する必要があります。次に、タイマーメカニズムを使用して値を変更します。あなたはtouchesBegan:を取得するときに、タイマーを起動し、SpriteKitベースを使用している場合は、touchesEnded:

を取得するときにそれを停止、シーンが組み込まれているタイマーのをトリガー:これは、特定の間隔で繰り返し発生させますNSTimer可能性がありupdate:方法。あなたは、タッチが存在することを示すためにフラグを使用し、update:の "サステイン"値を変更することができます。

関連する問題