2017-03-07 3 views
0

こんにちは、私はゲームで作業しています。このオブジェクトに私はタッチイベントがあります。タッチが250ms以下であってもタッチのチェックを追加しました。それ以外の場合はタップと見なします。タップイベントでは、値を10ポイントずつ増やしています。私は、オブジェクトを押さえている限り、値を1ずつ減らし続けたいと思っています。コードを追加しましたが、一度だけ行っています。コロナSDKの長押しでデクリメント値を維持する

質問は、私がいる限り、タッチイベントが記録される値をデクリメント保つにはどうすればよいです。コードは以下の参照用に提供されています

ただし、このコードは終了後にタップ/タッチを決定します。タッチイベントが始まると何がより良い実行時の代替

答えて

0

することができ、あなたは値を変更したい周波数で起動するようにタイマーを設定します。タイマーが起動すると、カウンタを変更する関数(おそらくclimbDown())を呼び出します。

タッチが終了

は、タイマーをキャンセルします。あなたのボタンにもう触れていなくても、このタッチの終了を確実に検出したい場合があります。これは、 this guideで説明されているように、ステージ上のフォーカスを管理することで実現します。

詳細については、timer.*のドキュメント(timer.performWithDelay()およびtimer.cancel())を参照してください。

+0

また、[タイマー](https://docs.coronalabs.com/api/library/timer/performWithDelay.html)については、[timer.pause()](https://docs.coronalabs.com/ api/library/timer/pause.html)と[timer.resume()](https://docs.coronalabs.com/api/library/timer/resume.html)の関数が便利です。 – ldurniat

+0

私はそれを指定した通りに追加すると一度だけ実行します。 –

+0

0または-1の値を指定すると、繰り返し実行されるperformWithDelay()のオプションの反復引数があります。ドキュメント: 'timer.performWithDelay(delay、listener [、iterations])'から。例えば、200ms(約)ごとに 'climbDown'を呼び出すには' timer.performWithDelay(200、climb down、-1) 'を使います。 – GoojajiGreg

関連する問題