【发布时间】:2016-07-19 00:48:29
【问题描述】:
我正在使用 Graphics2D 和 Canvas 类在 java 中创建游戏。
当我运行程序时,我的第一台显示器上会出现一个 JFrame,并且没有任何问题。但是,当我将 JFrame 拖到我的第二个监视器上时,它会变成灰色并停止渲染任何内容,然后当我将它拖回我的第一个监视器上时,程序会继续渲染..
我的游戏循环在扩展Canvas 的Screen 类中调用draw() 方法,这是draw 方法。
public void draw(){
BufferStrategy bs = getBufferStrategy();
if(bs == null){
createBufferStrategy(2);
bs = getBufferStrategy();
g = (Graphics2D) bs.getDrawGraphics();
}
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.WHITE);
g.drawString("Hello, this works", 300, 300);
g.drawImage(ImageLoader.test[0][0], 100, 100, null);
bs.show();
}
【问题讨论】:
-
stackoverflow.com/questions/4627553/… ,希望这会有所帮助:)
-
不,这没有帮助。其中的代码将 JFrame 放到我的另一个屏幕上,但如果我将它拖过屏幕,它会再次中断。我希望能够在显示器之间拖动我的 Jframe 而不会损坏。
-
如果你把这种类型的脚本放在一个循环或事件中,我相信它会起作用
标签: java awt game-engine graphics2d