2013-04-02 37 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()是一个很好的开始。 –