2013-04-02 38 views
2

enter image description hereLibGDX - 旋轉SpriteBatch本身

我想在點擊一個按鈕

@Override 
public void render() { 

    SpriteBatch batch = new SpriteBatch(); 

    batch.begin(); 
    batch.draw(gemTexture, 10, 10, 100, 100); 
    batch.end(); 

    if (Gdx.input.isTouched()) { 
     rotateRight(); 
    } 

}本身旋轉此SpriteBatch

private void rotateRight() { 
// How do I rotate it to look like 
} 

enter image description here

+1

類似的東西? http://stackoverflow.com/questions/9445035/rotate-image-clockwise-using-libgdx – Robb

回答

8

你正在畫一個T使用SpriteBatch的exture。紋理不支持旋轉。我建議Sprite類可能更適合你正在嘗試做的事情。以下是您可能要做的粗略勾畫......有關更多詳細信息,請參閱Sprite javadoc

private void createGemSprite() { 
    gemSprite = new Sprite(gemTexture); 
    gemSprite.setPosition(10, 10); 
} 

@Override 
public void render() { 

    SpriteBatch batch = new SpriteBatch(); 

    batch.begin(); 
    gemSprite.draw(batch); 
    batch.end(); 

    if (Gdx.input.isTouched()) { 
     rotateRight(); 
    } 
} 

private void rotateRight() { 
    gemSprite.setRotation(gemSprite.getRotation() - 90); 
} 
+0

它的工作原理!謝謝你,先生! – cesarferreira

+0

如果我有一把槍(不斷地在底部的水平位置上發射),我怎樣才能旋轉槍並在**碰到的**角度拍攝子彈? –

+0

@MuhammadBabar這真的是一個單獨的問題,但Camera.unproject()和Math.atan2()是一個很好的開始。 –