これは少しテキストベースの冒険を作っており、現在は自分の入力を継続的にチェックしているので、現在CPUの約45%〜50%を食べています。だから私はフレームレート/更新レートを制限するいくつかの種類の方法が必要です。私は、プレイヤーの入力をチェックしているループにthread.sleep(15)を入れようとすると、渡された入力で何もしないようにします。同様の質問が出てきましたが、答えはレンダリングメソッドが実際にあるゲームにのみ適用され、jtextareasとjtextfeildsを使用するとレンダリングメソッドは必要ありません。したがって、提供されるソリューションは私のためには機能しません。助けて?jframeでリミットフレームレート
0
A
答えて
0
Thread.sleepは現在のスレッドを完全に一時停止します。thread.sleepを使用すると、スレッドで何も起きないようにします。したがって、入力は検出されません。ここでは、レンダリング更新部分を削除するために修正したゲームループを示します。また、(真の)メソッドは非常に遅く、一般的には推奨されません。
このループを有効にするには、このループを呼び出すことができます。
public static void main(String[] args) {
loop(0);
}
public static void loop(int looptype) {
long lastTime = System.nanoTime();
double ns = 1000000000/60.0;
double delta = 0;
long timer = System.currentTimeMillis();
while(running) {
long now = System.nanoTime();
delta += (now - lastTime)/ns;
lastTime = now;
while (delta >= 1) {
if (looptype == 0) {
*something*
if (input.equals("1")) {
loop(1);
} else if (input.equals("2")) {
loop(2);
}
} else if (looptype == 1) loop1();
else if (looptype == 2) loop2();
delta--;
}
if (System.currentTimeMillis() - timer > 1000) {
timer += 1000;
}
}
}
public static void loop1() {
*something*
}
public static void loop2() {
*something*
}
関連する問題
- 1. JFrameとJPanel、次にJFrame
- 2. マウスイベント、Jframeでない
- 3. onTopedのJFrameは、JDialogの= JFrameの
- 4. JFrame ActionListener
- 5. ボタンでJFrameを閉じる
- 6. JFrameでJPaneを描く
- 7. JFrameでのJButtonの複製
- 8. setVisible(false)でJFrameを印刷
- 9. OpenMapのJframeでの実装
- 10. JFrameをJButtonで閉じる
- 11. jframeでクリアする方法
- 12. jFrame aboutコンボボックス
- 13. JFrameのJCommandButton
- 14. 拡張のJFrame
- 15. Java JFrameフリーズ
- 16. java JFrame setSize
- 17. Repaint Aero JFrame
- 18. JFrameのコンボボックスイベントキー... HELP
- 19. repaint()JFrameとJPanel
- 20. Java GUI、JFrame、アクションリスナー
- 21. 乱数ジェネレータjframe
- 22. JFrameスキャナーとsystem.out.print
- 23. Double Buffer a JFrame
- 24. jframeのJavaスケーリング
- 25. JFrame内のJGraph
- 26. JFrameとJOptionPane
- 27. JDK7 translucency + jframe + jcombobox
- 28. 日時jframe GUI
- 29. JFrame内のコンソール
- 30. JFrameのOpenGL
これに伴う問題、私はイムは、単にそれらを追加し、jtextareasとjtextfeildsを使用してイムとしての私のJFrameを再描画するための方法を持っていけないされて、私はそう行くように、私は方法 – xlis1
をレンダリング私はレンダリングを処分したのいずれかの種類を実行するカント部分的に、tickメソッドに入力コードを入れることができるはずです。これで修正されますか? – codedcosmos
私は何をやっているのか正確にはわかりません。プレイヤーが入力を入力できるjtextfeildを持っています。この値を変数に書き込み、プレイヤーの在庫と統計パネルを更新するjbuttonを持っています。プレーヤーの入力をいくつかの値と照らし合わせてチェックします。私はこれがひどく非効率的であることを認識しています。なぜここでは少なくとも管理しやすいレベルにしようとしていますが、システム全体を書き直す必要があるようです。または私はティック()を結ぶことができます。何らかの形でサブミットアクションに入る?知りません。 – xlis1