2014-12-07 3 views
1

저는이 프레임 워크에 익숙하지 않고 Sprite를 회전시키는 데 어려움을 겪고 있습니다. 나는 그것이 올바르게하고 있다고 생각하지만 어떻게 든 작동하지 않는다.생성시 Sprite를 회전합니다.

이것은 내가 가지고있는 것입니다 : 나는 scene2d를 사용하고 있는데 큐브라는 액터가 있습니다. 내가 가지고있는 배우의 무승부 방법에

public Cube(){ 
    sizeOfCube = 40; 

    Pixmap pixmap = new Pixmap(sizeOfCube,sizeOfCube, Pixmap.Format.RGBA8888); 
    pixmap.setColor(Color.BLUE); 
    pixmap.fill(); 
    pixmap.drawRectangle(0,0,sizeOfCube,sizeOfCube); 

    Texture rectangleTexture = new Texture(pixmap); 
    pixmap.dispose(); 

    rectangleSprite = new Sprite(rectangleTexture,0,0,sizeOfCube,sizeOfCube); 
    rectangleSprite.setPosition(Gdx.graphics.getWidth()/2 - rectangleSprite.getWidth()/2, 
      Gdx.graphics.getHeight()/2); 

    rectangleSprite.setOrigin(rectangleSprite.getWidth()/2, rectangleSprite.getHeight()/2); 
    rectangleSprite.rotate(45f); 
} 

:

@Override 
public void draw(Batch batch, float alpha){ 
    batch.draw(rectangleSprite, rectangleSprite.getX(), rectangleSprite.getY()); 
} 

스프라이트가 제대로 렌더링이 큐브의 생성자에서 나는 큐브는 다음을 수행하는 Sprite의 질감을 생성 화면에는 회전하지만 전혀 없습니다! 저를 미치게 만들었습니다. 코드가 잘 작동하는 것처럼 보이는 여러 곳을 읽었지만 제대로 작동하지 않아서 제가이 세상에 완전히 새로운 것처럼 놓친 뭔가가 있어야합니다.

고맙습니다. 당신의 큐브을 그릴 때

답변

1

당신은 배치에 회전에 대한 정보를 보내야합니다 :

@Override 
public void draw(Batch batch, float alpha){ 
    batch.draw(rectangleSprite, 
       rectangleSprite.getX(), 
       rectangleSprite.getY(), 
       rectangleSprite.getOriginX(), 
       rectangleSprite.getOriginY(), 
       rectangleSprite.getWidth(), 
       rectangleSprite.getHeight(), 
       rectangleSprite.getScaleX(), 
       rectangleSprite.getScaleY(), 
       rectangleSprite.getRotation()); 
} 

을 당신이 그것을 짧게 만들 수 그런데. 새 스프라이트을 새로 작성하지 마십시오. 그냥 큐브 메서드를 호출하십시오 (그것은 당신이 말한 배우입니다) : setPosition(), setOrigin(), rotate(). 그런 다음에이 같은 큐브 방법을 사용할 수있는 방법을 렌더링 : 대신 당신이 그들에게 자신을 할 필요없이, 당신은 sprite.draw(Batch batch) 또는 sprite.draw(Batch batch, float alphaModulation)이 libGDX 당신을 위해 당신의 스프라이트의 모든 속성이 반영됩니다 호출하는 경우

batch.draw(rectangleSprite, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation()); 
+0

고마워요! 완벽하게 작동했습니다! 나는 새로운 것을 좋아하지 않는다. 시작하기가 어렵다. – Andres

관련 문제