0
点赞
收藏
分享

微信扫一扫

HelloWorld帧速率

干自闭 2022-11-03 阅读 78

帧速率:是一秒钟出现图像的帧(幅)数,30fps即每秒有30幅画面流过,它要比23.98fps的流畅程度更好,我们的感官上也就是所谓动画画质更好,其实真正意义上的“画质”并没有变。 


1.FrameRate类




package javagames.util;








public class FrameRate {




private String frameRate;




private long lastTime;




private long delta;




private int frameCount;




public void initialize(){




lastTime=System.currentTimeMillis();




frameRate="FPS 0";




}




public void calculate() {




long current=System.currentTimeMillis();




delta+=current-lastTime;




lastTime=current;




frameCount++;




if(delta>1000){




delta-=1000;




frameRate=String.format("FPS %s", frameCount);




frameCount=0;




}




}




public String getFrameRate(){




return frameRate;




}




}




2.应用程序实例




package javagames.render;








import java.awt.Color;




import java.awt.Dimension;




import java.awt.Graphics;








import javagames.util.FrameRate;








import javax.swing.JFrame;




import javax.swing.JPanel;




import javax.swing.SwingUtilities;








public class HelloWorldApp extends JFrame{




private FrameRate frameRate;




public HelloWorldApp(){




frameRate=new FrameRate();




}




protected void createAndShowGUI() {




GamePanel gamePanel=new GamePanel();




gamePanel.setBackground(Color.BLACK);




gamePanel.setPreferredSize(new Dimension(320,240));




getContentPane().add(gamePanel);



(EXIT_ON_CLOSE);




setTitle("Hello");




pack();




frameRate.initialize();




setVisible(true);




}




private class GamePanel extends JPanel{




@Override




public void paint(Graphics g) {




// TODO Auto-generated method stub




super.paint(g);




onPaint(g);




}




}




protected void onPaint(Graphics g) {




frameRate.calculate();




g.setColor(Color.WHITE);




g.drawString(frameRate.getFrameRate(), 30, 30);




repaint();




}




public static void main(String[] args) {



orated(true);




final HelloWorldApp app=new HelloWorldApp();




SwingUtilities.invokeLater(new Runnable() {




@Override




public void run() {




// TODO Auto-generated method stub




app.createAndShowGUI();




}




});




}




}

3.运行效果

​​​​​

举报

相关推荐

0 条评论