在JGame中更改背景图像

时间:2010-06-04 21:55:49

标签: java

在JGame中,方法setBGImage()应该更改背景图像。这在我在初始化开始时第一次设置背景图像时有效。但是,当我稍后调用相同的方法来更改背景图像时,它似乎什么都不做。我做错了什么?

以下是一些示例代码,向您展示我的意思:

import jgame.*;
import jgame.platform.*;

public class Test extends JGEngine{
    public static void main(String[] args) {
        new Test();
    }

    public Test(){
        super();
        initEngine(640,480);
    }

    public void initCanvas(){
        setCanvasSettings(10,6,64,80,null,JGColor.white,null);
    }

    public void initGame(){
        setFrameRate(35,2);
        defineMedia("media.tbl");
        doTestBackground();
    }

    /* Demonstrates the bug */
    void doTestBackground(){
        new Thread(new Runnable(){
            public void run(){

                setBGImage("bg1");

                /* If it's put here, then it works perfectly:
                   setBGImage("bg2"); */

                try{
                    Thread.sleep(2000);
                }
                catch(Exception e){}

                /* If it's put here it doesn't work!
                   The background SHOULD change here but it doesn't */
                setBGImage("bg2");

            }
        }).start();
    }
}

3 个答案:

答案 0 :(得分:2)

如果你还想要一些答案。这里是: http://installsteps.blogspot.com/2010/10/jgame-java-game-engine.html

答案 1 :(得分:1)

仅供参考,此setBGImage行为是版本3.4中修复的错误。从3.4开始,setBGImage正确更新了屏幕。

答案 2 :(得分:0)

也许您遇到使用错误线程的问题?通常,AWT线程用于更改组件(在Swing框架中)。

尝试使用SwingUtilities.invokeLater(new Runnable() { public void run() { setBGImage("things");} } );