JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)

FPS:即帧 /秒(frames per second)的缩写,也称为帧速率。是指1秒钟时间里刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。如果具体到手机上就是指每秒钟能够 播放(或者录制)多少格画面。同时越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(fps)越多,所显示的动作就会越流畅。

在绝大多数图形程序中(以游戏类为典型),执行效率都以FPS作为评估标准。

由于目前JAVA方面缺少相关用例,故完成功能如下图(在本机测试中,最大fps设定为500,实际达到FPS效率在IDE中280左右,单独运行380左右,受系统配置等因素影响):

代码如下:JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)(请变更文件后缀为jar)

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)

FPS相关操作代码如下:
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)packageorg.test;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.text.DecimalFormat;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Title:LoonFramework</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Description:</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Copyright:Copyright(c)2007</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Company:LoonFramework</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@authorchenpeng
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*@email:[email protected]
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@version0.1
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicclassFPSListen...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//设定动画的FPS桢数,此数值越高,动画速度越快。
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticfinalintFPS=500;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//换算为运行周期
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticfinallongPERIOD=(long)(1.0/FPS*1000000000);//单位:ns(纳秒)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//FPS最大间隔时间,换算为1s=10^9ns
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticlongFPS_MAX_INTERVAL=1000000000L;//单位:ns
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//实际的FPS数值
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatedoublenowFPS=0.0;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//FPS累计用间距时间
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatelonginterval=0L;//inns
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatelongtime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//运行桢累计
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatelongframeCount=0;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//格式化小数位数
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateDecimalFormatdf=newDecimalFormat("0.0");
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//开启opengl
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidopengl()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)System.setProperty(
"sun.java2d.opengl","True");
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)System.setProperty(
"sun.java2d.translaccel","True");
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*制造FPS数据
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidmakeFPS()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frameCount
++;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)interval
+=PERIOD;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//当实际间隔符合时间时。
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(interval>=FPS_MAX_INTERVAL)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//nanoTime()返回最准确的可用系统计时器的当前值,以毫微秒为单位
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
longtimeNow=System.nanoTime();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//获得到目前为止的时间距离
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
longrealTime=timeNow-time;//单位:ns
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//换算为实际的fps数值
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
nowFPS=((double)frameCount/realTime)*FPS_MAX_INTERVAL;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//变更数值
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
frameCount=0L;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)interval
=0L;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)time
=timeNow;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publiclonggetFrameCount()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
returnframeCount;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidsetFrameCount(longframeCount)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.frameCount=frameCount;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publiclonggetInterval()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
returninterval;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidsetInterval(longinterval)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.interval=interval;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicdoublegetNowFPS()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
returnnowFPS;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidsetNowFPS(doublenowFPS)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.nowFPS=nowFPS;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publiclonggetTime()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
returntime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidsetTime(longtime)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.time=time;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicStringgetFPS()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
returndf.format(nowFPS);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)


球体类代码如下:
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)packageorg.test;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Color;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Graphics;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Title:LoonFramework</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Description:</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Copyright:Copyright(c)2007</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>Company:LoonFramework</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@authorchenpeng
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*@email:[email protected]
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@version0.1
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicclassBall...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatestaticfinalintSIZE=10;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateintx,y;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
protectedintvx,vy;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicBall(intx,inty,intvx,intvy)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.x=x;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.y=y;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.vx=vx;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
this.vy=vy;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidmove()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)x
+=vx;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)y
+=vy;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(x<0||x>BallPanel.WIDTH-SIZE)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)vx
=-vx;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(y<0||y>BallPanel.HEIGHT-SIZE)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)vy
=-vy;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoiddraw(Graphicsg)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)g.setColor(Color.RED);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)g.fillOval(x,y,SIZE,SIZE);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)



FPS及球体处理用代码如下:
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)packageorg.test;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Color;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Dimension;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Frame;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Graphics;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Image;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.Panel;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.event.WindowAdapter;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.event.WindowEvent;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.awt.image.BufferedImage;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
importjava.util.Random;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*Title:LoonFramework
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*Description:以JAVA获取FPS用演示程序及随机生成乱数球体。(更优化代码内置于loonframework-game框架中)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*Copyright:Copyright(c)2007
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*<p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*Company:LoonFramework
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*</p>
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@authorchenpeng
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*@email:[email protected]
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
@version0.1
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicclassBallPanelextendsPanelimplementsRunnable...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatestaticfinallongserialVersionUID=1L;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticfinalintWIDTH=360;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticfinalintHEIGHT=360;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//设定最大球体数量
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatestaticfinalintNUM_BALLS=50;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//定义球体数组
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateBall[]ball;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//运行状态
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatevolatilebooleanrunning=false;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateThreadgameLoop;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//缓存用图形
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateGraphicsbg;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateImagescreen=null;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//生成随机数
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateRandomrand;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//fps监听
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privateFPSListenfps=null;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicBallPanel()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)setPreferredSize(
newDimension(WIDTH,HEIGHT));
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)screen
=newBufferedImage(WIDTH,HEIGHT,1);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)bg
=screen.getGraphics();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)fps
=newFPSListen();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//fps.opengl();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//以当前毫秒生成随机数
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
rand=newRandom(System.currentTimeMillis());
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)ball
=newBall[NUM_BALLS];
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//初始化球体参数
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
for(inti=0;i<NUM_BALLS;i++)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
intx=rand.nextInt(WIDTH);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
inty=rand.nextInt(HEIGHT);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
intvx=rand.nextInt(10);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
intvy=rand.nextInt(10);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)ball[i]
=newBall(x,y,vx,vy);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//加入Notify
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidaddNotify()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
super.addNotify();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//判断循环条件是否成立
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(gameLoop==null||!running)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)gameLoop
=newThread(this);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)gameLoop.start();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*进行线程运作。
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidrun()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
longbeforeTime,afterTime,timeDiff,sleepTime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
longoverSleepTime=0L;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
intnoDelays=0;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//获得精确纳秒时间
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
beforeTime=System.nanoTime();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)fps.setTime(beforeTime);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)running
=true;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
while(running)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)gameUpdate();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)repaint();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)afterTime
=System.nanoTime();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)timeDiff
=afterTime-beforeTime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//换算间隔时间
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
sleepTime=(FPSListen.PERIOD-timeDiff)-overSleepTime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(sleepTime>0)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//制造延迟
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
try...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)Thread.sleep(sleepTime
/1000000L);//nano->ms
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
}
catch(InterruptedExceptione)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//获得延迟时间
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
overSleepTime=(System.nanoTime()-afterTime)-sleepTime;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}
else...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//重新计算
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
overSleepTime=0L;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//判断noDelays值
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
if(++noDelays>=16)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)Thread.yield();
//令线程让步
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
noDelays=0;
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//重新获得beforeTime
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
beforeTime=System.nanoTime();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//制造FPS结果
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
fps.makeFPS();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*变更球体轨迹
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
privatevoidgameUpdate()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
for(inti=0;i<NUM_BALLS;i++)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)ball[i].move();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*变更图形
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidupdate(Graphicsg)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)paint(g);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
/***//**
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)*显示图形
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
*/

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidpaint(Graphicsg)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//设定背景为白色,并清空图形
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
bg.setColor(Color.WHITE);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)bg.fillRect(
0,0,WIDTH,HEIGHT);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//FPS数值显示
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
bg.setColor(Color.BLUE);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)bg.drawString(
"FPS:"+fps.getFPS(),4,16);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
//分别绘制相应球体
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
for(inti=0;i<NUM_BALLS;i++)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)ball[i].draw(bg);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)g.drawImage(screen,
0,0,this);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)g.dispose();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicstaticvoidmain(String[]args)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)Framefrm
=newFrame();
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.setTitle(
"JavaFPS速度测试(由Loonframework框架提供)");
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.setSize(WIDTH,HEIGHT
+20);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.setResizable(
false);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.add(
newBallPanel());
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.setVisible(
true);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)frm.addWindowListener(
newWindowAdapter()...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
publicvoidwindowClosing(WindowEvente)...{
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)System.exit(
0);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}
);
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)}

JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)