快速业务通道

JAVA图形操作中FPS的计算 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
nd;    // fps酌油    private FPSListen fps = null;    public BallPanel() {        setPreferredSize(new Dimension(WIDTH, HEIGHT));        screen = new BufferedImage(WIDTH, HEIGHT, 1);        bg = screen.getGraphics();        fps = new FPSListen();        //fps.opengl();        // 參輝念坐昼伏撹昧字方        rand = new Random(System.currentTimeMillis());        ball = new Ball[NUM_BALLS];        // 兜兵晒白悶歌方        for (int i = 0; i < NUM_BALLS; i++) {            int x = rand.nextInt(WIDTH);            int y = rand.nextInt(HEIGHT);            int vx = rand.nextInt(10);            int vy = rand.nextInt(10);            ball[i] = new Ball(x, y, vx, vy);        }    }    // 紗秘Notify    public void addNotify() {        super.addNotify();        // 登僅儉桟訳周頁倦撹羨        if (gameLoop == null || !running) {            gameLoop = new Thread(this);            gameLoop.start();        }    }    /** *//**     * 序佩?殻塰恬。     */    public void run() {        long beforeTime, afterTime, timeDiff, sleepTime;        long overSleepTime = 0L;        int noDelays = 0;        // 資誼娼鳩追昼扮寂        beforeTime = System.nanoTime();        fps.setTime(beforeTime);        running = true;        while (running) {            gameUpdate();            repaint();            afterTime = System.nanoTime();            timeDiff = afterTime - beforeTime;            // 算麻寂侯扮寂            sleepTime = (FPSListen.PERIOD - timeDiff) - overSleepTime;            if (sleepTime > 0) {                // 崙夛决岳                try {                    Thread.sleep(sleepTime / 1000000L); // nano->ms                } catch (InterruptedException e) {                }                // 資誼决岳扮寂                overSleepTime = (System.nanoTime() - afterTime) - sleepTime;            } else {                // 嶷仟柴麻                overSleepTime = 0L;                // 登僅noDelays峙                if (++noDelays >= 16) {                    Thread.yield(); // 綜?殻斑化                    noDelays = 0;                }            }            // 嶷仟資誼beforeTime            beforeTime = System.nanoTime();            // 崙夛FPS潤惚            fps.makeFPS();        }    }    /** *//**     * 延厚白悶轟治     *     */    private void game

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号