2013-11-28 89 views
1

我想設置背景圖片,然後讓背景圖片放在背景圖片上,但是我遇到的問題是背景圖層覆蓋了其他所有內容。我希望有人能告訴我如何適當地分層圖像。Java分層圖片

我至今對繪畫的背景是這樣的代碼,

@Override 
public void paint(Graphics g) { 
    super.paint(g); 
    Graphics2D g2d = (Graphics2D) g; 
    DoAnimation(); 
    if (bInGame) { 
     PlayGame(g2d); 
    } else { 
     ShowIntroScreen(g2d); 
    } 
    g.drawImage(ii, 5, 5, this); 
    //g.drawImage(Background, 0, 0, null); 
    Toolkit.getDefaultToolkit().sync(); 
    g.dispose(); 
} 

有背景在活動時會出現的唯一的事,但g.drawImage當我把它註釋掉一切演出再起。我已經嘗試將我的背景放入單獨的文件中,希望它能將其放在一切背後

+0

向我們顯示您的代碼:) –

+0

您的代碼到目前爲止看起來如何? – haraldK

+0

@AndrewThompson我大概85%確定這是有道理的。 – BlueBarren

回答

2

您需要先繪製背景圖像。在你的代碼片段中,你最後繪製它。

@Override 
public void paint(Graphics g) { 
    super.paint(g); 
    Graphics2D g2d = (Graphics2D) g; 

    // assuming you want it behind everything else 
    // drawn to g2d after this point 
    g.drawImage(Background, 0, 0, null); 

    DoAnimation(); 
    if (bInGame) { 
     PlayGame(g2d); 
    } else { 
     ShowIntroScreen(g2d); 
    } 
    g.drawImage(ii, 5, 5, this); 
    Toolkit.getDefaultToolkit().sync(); 
    g.dispose(); 
} 

思考描繪到圖形上下文堆放的紙張。每個平局呼叫都會在完成之前完成。當您繪製新圖像時,它會覆蓋之前的任何內容。

+0

我可以發誓,我已經嘗試過,但當我在你的建議後再次嘗試它終於奏效,非常感謝你! – BlueBarren

+0

不客氣。 :) –

+0

那麼你怎麼能做到這一點與圖像。比方說,我有一堆卡片,我想在它們之間用一個大約50px的水平偏移量疊加一個。以下是完整的討論主題。 http://stackoverflow.com/questions/32218170/stack-cards-horizo​​ntally-with-some-offset – summerNight