私は与えられたメソッドを1秒間にX回(例えば毎秒30回)実行するタスクを持っています。そのチックメソッド内で、私は現在の速度を表示する必要があります(基本的にFPSを表示)。メソッドをJavaで1秒間にX回実行する
私は始める方法も知らない。試してグーグルが、実際には役に立たなかった。 「FPS」のようなものを表示するには
私は与えられたメソッドを1秒間にX回(例えば毎秒30回)実行するタスクを持っています。そのチックメソッド内で、私は現在の速度を表示する必要があります(基本的にFPSを表示)。メソッドをJavaで1秒間にX回実行する
私は始める方法も知らない。試してグーグルが、実際には役に立たなかった。 「FPS」のようなものを表示するには
:
public static void main(String[] args) {
while (true) callMethod();
}
private static long lastTime = System.currentTimeMillis();
public static void callMethod() {
long now = System.currentTimeMillis();
long last = lastTime;
lastTime = now;
double fps = 1000/(double)(now - last);
System.out.println(fps);
}
次の2つのステップの間にそれ以外の差があまりにも小さいので、FPSは「インフィニティ」になり、いくつかのスリープを追加する必要があります。
1秒あたり30回の要件は全く異なるものです。私が私のコメントで言いましたように、これは基本的にfpsの正反対です.30回目は正確に30fpsを意味します。これはfpsを計算する必要がないということです。
自体で「1秒間に30回は」少なくとも2つの理由のため、一般的に悪い条件であることをさらに注記:
これは広すぎます。あなたは既にゲームループを持っていますか?メソッドをX回呼び出すことは、「現在の速度/ FPS」を表示することとは異なります。これらは基本的に反対です。 – luk2302
これは私が持っているすべての情報です。文字通り「指定された時間間隔(例30回/秒)で任意のメソッドを実行するプログラムを作成します。メソッドは実行の現在の速度(1秒あたりのフレーム数)を表示する必要があります –
あなたが探しているメソッド['System.currentTimeMillis()'](https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#currentTimeMillis--)、および '' Thread.sleep(long millis) '](https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#sleep-long-)**割り当てを完了するには、あなた次第ですこれらの方法の使い方を理解する--- http://idownvotedbecau.se/noattempt/あなたはあなたがそれを完了するために必要なツールについて学ぶことなくこの課題を持っている可能性は低いので、おそらくあなたは(再)教材。 – Andreas