当前位置:  开发笔记 > 编程语言 > 正文

JAVA GAME循环?

如何解决《JAVAGAME循环?》经验,为你挑选了1个好方法。

我的java游戏有问题.我是初学者,但我必须把它写成一个学校项目.
游戏被称为"生日蛋糕",蛋糕上有7个蜡烛,其中一个正在显示为30秒,在这段时间你必须点击它才能得到点,如果你在这段时间没有点击它下一支蜡烛将显示.10个蜡烛显示游戏结束.
我做了循环,我试图使它工作太久,我沮丧
我的for循环工作,但它是如此之快,我使用Thread.sleep(1000),我尝试了很多解决方案,它看起来不错.但是,当我开始游戏时,没有任何事情发生,几秒钟后,所有7支蜡烛显示并迅速消失.我想我做错了什么,但我不知道是什么.

   if(Dane.start){

        int liczbaLosowa = 0;

        for(int i=0; i<10 ;i++){
            liczbaLosowa = (int)(Math.random()*7);

            this.wspX= wspX_p[liczbaLosowa];
            this.wspY= wspY_p[liczbaLosowa];
            g2d.drawImage(plomienImg, wspX, wspY,null);
            Toolkit.getDefaultToolkit().sync();
            try {
                Thread.sleep(1000);     
            } catch (Exception ex) { }
            //repaint();
        }
        Dane.start=false;

        }

Hovercraft F.. 5

这个循环在JPanel paintComponent中...

永远,
永远,

决不

调用Thread.sleep(...)内部paintComponent 不断.请理解,此方法在很大程度上决定了程序的感知响应能力,任何减慢程序速度或冻结它的程序都会严重降低和冻结GUI.实际上你永远不应该在大多数Swing程序的代码中调用Thread.sleep(所有这些都在Swing事件线程上运行),但是在paintComponent中这样做是更糟糕的罪.解决方案是使用Swing Timer,并在Timer的ActionListener的actionPerformed代码中定期重复调用您想要调用的代码.在此方法中,更改类中字段所持有的值,例如wspX和wspY,调用repaint(),然后使用paintComponent中的那些字段来确定在哪里绘制的内容.



1> Hovercraft F..:

这个循环在JPanel paintComponent中...

永远,
永远,

决不

调用Thread.sleep(...)内部paintComponent 不断.请理解,此方法在很大程度上决定了程序的感知响应能力,任何减慢程序速度或冻结它的程序都会严重降低和冻结GUI.实际上你永远不应该在大多数Swing程序的代码中调用Thread.sleep(所有这些都在Swing事件线程上运行),但是在paintComponent中这样做是更糟糕的罪.解决方案是使用Swing Timer,并在Timer的ActionListener的actionPerformed代码中定期重复调用您想要调用的代码.在此方法中,更改类中字段所持有的值,例如wspX和wspY,调用repaint(),然后使用paintComponent中的那些字段来确定在哪里绘制的内容.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有