2013-06-02 5 views
1

자바 게임에서는 Sprite 시트에서 BufferedImage가 할당 된 플레이어 클래스가 있습니다. 방금 화면에서 플레이어를 움직이는 KeyAdapter 및 KeyListeners를 추가했습니다. 그러나 이렇게하면 이미지의 흔적이 남습니다.키가있는 움직이는 객체는 흔적을 남깁니다.

private void render() { 
    BufferStrategy bs = this.getBufferStrategy(); 
    if(bs == null) { 
     createBufferStrategy(3); 
     return; 
    } 
    Graphics g = bs.getDrawGraphics(); 

    p.render(g); //p is the player object 

    g.dispose(); 
    bs.show(); 
} 

public static void main(String[] args) { 
    Game game = new Game(); 
    game.setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE)); 
    game.setMinimumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE)); 
    game.setMaximumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE)); 

    JFrame frame = new JFrame(game.TITLE); 

    frame.add(game); 

    frame.pack(); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setResizable(false); 
    frame.setVisible(true); 

    game.start(); 

} 
+0

I를하는 데 도움이

희망 간단한 exampels와 자바 그래픽의 기초에 reference입니다 그것의 이미지를 갖게되었지만 더 많은 평판이 필요합니다. :(죄송합니다. 얘들 아. – sparklyllama

+0

링크를 게시하고 누군가가 이미지를 만들 것입니다. – Maroun

+0

코드 없이는 무슨 일이 벌어지고 있는지 알 수 있습니다. 내 경험에 따르면, 우리는 마음을 읽거나 표시되지 않은 코드를 추측 할 때 끔찍합니다. 만약 당신이 superComponent (...)를 오버 라이딩하고 있다면? –

답변

0

정확하게 이해한다면, 마지막으로 그려진 것들을 유지하는 것처럼 보이는 배경이있을 수 있습니다.

그래서 난 당신이 이미지를 이동하면 배경을 다시 그릴 필요가 있다고 생각 .. 여기

이이

+0

그건 그랬어. 정말 고맙습니다! – sparklyllama

+0

@sparklyllama 답변을 확인하여 다른 사람들이 해결책을 볼 수 있도록하십시오. –

관련 문제