2014-02-11 3 views
3

이상한 일이 일어나고 있습니다. 알아낼 수 없습니다. StateBasedGame을 만들고 있는데, BasicGameStates 중 하나에서 이미지를 그리려고합니다. 그것은 백색을, 그러나 위로 보여준다. 코드 :Draw Image Not Slick2d

@Override 
    public void render(GameContainer arg0, StateBasedGame arg1, 
      Graphics g) throws SlickException { 
     // TODO Auto-generated method stub 
     g.setBackground(Color.blue); 
     Image image = new Image("res/Sniper Scope (Border).png"); 
     g.drawImage(image, 230,100); 
    } 

이 이미지를 (이 충돌하지 않습니다) 찾는 것 같다,하지만 모든이가 온다 :

어떤 도움을 주시면 감사하겠습니다.

+0

이것은 매끄럽게 사용되는 렌더링 방법을 부적절하게 사용합니다. 엄지 손가락의 규칙은 변수를 선언/초기화 (특히 이미지를 처리 ​​할 시간이 없으므로 이미지)하거나 렌더링 스레드에서 무거운 논리를 사용하지 않는 것입니다. 게임이 실행되는 방식은 게임이 만드는 모든 틱마다 이미지를 초기화하고로드합니다. 이는 당신이 가지고있는 FPS가 무엇이든 관계없이 처리 할 수 ​​있습니다. – Samich

답변

1

이미지 초기화/선언을 init 메소드로 이동하십시오. 렌더 범위에서 이미지를 호출하려면 이미지를 전역 변수로 설정 한 다음 Init 메서드에서 이미지를 초기화해야합니다.

편집 : 또한 매끄러운 이미지 클래스는 draw (x, y) 메서드를 사용할 수 있습니다! g.drawImage()가 필요 없습니다. 예 : 이미지 img = 새 이미지 ("res/Image.png");

렌더링 방법 : img.draw (0, 0);

+0

이 작품! @Samich, 정말 고마워! –