私はJavaでゲームを作ろうとしていて、問題が発生しました。私のプログラムが私のCPUから多くの電力を消費するJFrameを再描画するとき、私は見過ごされている目障りなミスやCPU使用量を減らす方法があるのか疑問に思っていました。JPanelを再描画するとCPUが増える
Frame.java
public class Frame extends JFrame {
JFrame frame;
public static Panel panel;
public void makeFrame() {
frame = new JFrame("Game");
panel = new Panel();
panel.init();
frame.setSize(1000, 1000);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.add(panel);
}
}
GameLoop.java
public class GameLoop {
//render gets called 30 times per second
private void render() {
Frame.panel.repaint();
}
}
Panel.java
public class Panel extends JPanel {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
mvmt.drawCha(g2d); //mvmt is an instance of Movement
}
}
Movement.java
public class Movement {
public void drawCha(Graphics2D g2d) {
g2d.drawImage(charImg, x , y, x + 40 , y + 40, 0, 0, 17, 28, null);
}
}
事前にお手伝いをしてください!
お使いのシステムでは、どのような種類のCPUを使用していますか?画面の解像度はどのくらいですか? – sorifiend
@sorifiendそれはintel i5 7世代で、画面は1920x1080です –
再塗装は本当に30/s必要ですか?状態の変化があった場合、ただ再焼成しないのはなぜですか? –