[英]Swing application won't display in unity when second monitor is on the left
[英]Java game won't render on second monitor
我正在使用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();
}
不要在方法范圍之外保留對Graphics(或Graphics2D)對象的引用。
移動g = (Graphics2D) bs.getDrawGraphics();
在您的if塊之外。 每次繪制時都需要獲取一個新的圖形。
完成繪制后,還需要立即處理這些圖形。
使用BufferStrategy有點復雜。 我建議您看一下BufferStrategy文檔中的示例代碼。 特別是,您需要在渲染周圍放置循環,以檢查BufferStrategy的contentsRestored()
和contentsLost()
方法返回的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.