2013-11-28 12 views
1

배경 이미지를 설정하려고하는데 그 배경 이미지의 맨 위에 표시되지만 실행중인 문제는 배경이 다른 모든 레이어 위에 겹쳐져 있다는 것입니다. 나는 누군가가 나에게 이미지를 적절하게 레이어하는 방법을 보여주기를 바라고있다.Java Layering Images

지금까지 배경이입니다 도장이 코드,

@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-horizontally-with-some-offset – summerNight