Thread.sleep()の管理
我々はThread.sleep()メソッドによってスレッド、つまり画面描画の実行間隔を操作しています。
処理→一定時間だけ停止
Thread.sleep()はこの様に処理間隔を操作します。
実際は処理自体が永久ループの中に組まれている為、このフローチャートの上下は繋がっています。
また、処理中に再描画を咬ませる事で描画間隔を操作しています。
速度の表現
これ迄このメソッドには30しか持たせていなかったので、恐らく殆どの人がそのまま使用しているのでは無いかと思われます。
実は、この数値で描画速度を変える事が出来るのです。
そもそもThread.sleep()に与える値は"何ミリセカンド処理を停止させるか"を示すものです。
単位は上述の通りms ―Milli Second― なので、ここを例えば今迄の様に"30"とすればスレッドは30msの間その処理を停止させる事になります。
この値を操作する事で速度の表現が可能です。
尤も、このThread.sleep()の効力はそのスレッド全域に及びますから、1つのオブジェクトだけの処理を遅らせたりする事は、基本的には出来ません。
ただ、そのオブジェクトの為に1つスレッドを作成し、別々に動かせば実現自体は不可能な事ではありません。
しかしこの方法だとオブジェクト毎にスレッドを作らなくてはならない為、余り実用性の高いものだとは言えません。
個々の速度表現は、これ迄通り変数を通した数値で指定した方が良いでしょう。
反対に処理落ちを意図的に表現したい場合やシーンによってその処理速度を変えたい場合等はThread.sleep()の値変動が適していると言えるでしょう。
inserted by FC2 system