2012-02-26 4 views
1
private Texture druidTexture; 
private SpriteBatch batch;  
Sprite sprite; 
@Override 
public void create() { 
druidTexture = new Texture(Gdx.files.internal("star-large.gif"));  
sprite = new Sprite(druidTexture); 
batch = new SpriteBatch(); 
} 
@Override 
public void dispose() { 

} 

@Override 
public void pause() { 

} 

@Override 
public void render() { 
    batch.begin(); 
    sprite.rotate(45); 
    float x=sprite.getX(); 
    float y=sprite.getY(); 
    float newx=x+1; 
    System.out.println(newx); 
    float newy=y+1; 
    sprite.setX(newx); 
    sprite.draw(batch); 
    batch.end(); 
} 

@Override 
public void resize(int arg0, int arg1) { 

} 

@Override 
public void resume() { 

} 

} 
내가이 enter image description here

libGDX에서 어떻게 뒤 텍스처를 제거 할 수 있습니까?

로 위의 코드의 출력을 얻고있다하지만 난 그렇게 할 수있는 방법에 다시, 각 별의 별을 제거해야

??

+1

당신이 각 프레임 전에 화면을 취소 할 것 같다. [여기] (http://code.google.com/p/libgdx/wiki/SpriteBatch) 방법을 참조하십시오. –

+0

@Banthar 내가 어떻게 할 수 있니? –

+0

@Banthar : 링크의 경우 Gdx.gl.glClear (GL10.GL_COLOR_BUFFER_BIT); 이 코드는 도움이, aswer로 게시 할 수 있습니까? –

답변

5

에서 먼저 화면 :

public void render() { 
      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); // This cryptic line clears the screen. 
      batch.begin(); 
      // Drawing goes here! 
      batch.end(); 
    } 
+0

어떻게 텍스쳐가 폼의 끝에 있는지를 알아낼 수 있습니다. 그렇다면 렌더링을 멈출 필요가 있습니다. 어떻게 할 수 있습니까? –

+2

이것은 완전히 별개의 질문이며, 귀하의 프로젝션 매트릭스에 따라 다릅니다. 기본 OpenGL 프로젝션 인 경우 별의 위치가 1보다 큰지 확인하면됩니다. 1 단위 = 1 픽셀로 투영하는 경우 별의 위치가 창 너비보다 큰지 확인합니다. 다른 투사의 경우, 창의 가장자리가 가장 먼저 보이는 부분을 계산해야합니다. –

1

지우기 기능 render 당신은 here 설명 된대로 각 프레임 전에 화면을 취소 할 필요가

@Override 
public void render() { 
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
     ..... 
} 
관련 문제