2015-01-07 3 views
0

Функции .setRotation() или .rotateBy() работают с другими классами Actor, но не с объектами ProgressBar.libgdx ProgressBar вращение не работает

Я что-то упустил?

public void create() { 
    stage = new Stage(new ScreenViewport()); 
    Gdx.input.setInputProcessor(stage); 
    skin = new Skin(); 
    Pixmap pixmap = new Pixmap(10, 10, Pixmap.Format.RGBA8888); 
    pixmap.setColor(Color.WHITE); 
    pixmap.fill(); 
    skin.add("white", new Texture(pixmap)); 

    TextureRegionDrawable textureBar = new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal("blue.jpg")))); // Just a blue square 
    ProgressBar.ProgressBarStyle barStyle = new ProgressBar.ProgressBarStyle(skin.newDrawable("white", Color.DARK_GRAY), textureBar); 
    progressBar = new ProgressBar(0,10,0.5f,false, barStyle); 
    progressBar.setPosition(10, 10); 
    progressBar.setSize(290, progressBar.getPrefHeight()); 
    progressBar.setAnimateDuration(2); 
    progressBar.setValue(5); 
    progressBar.setRotation(45); // Should rotate the bar 

    stage.addActor(progressBar); 
} 

The bar stays horizontal even if I set the rotation.

Кроме того, если я называю .getRotation() Я получаю все, что я установил его ранее, так что я не уверен, что проблема здесь.

+0

Сам индикатор предназначен для отображения себя по горизонтали и по вертикали и не позволяет родовое roation (см https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/ GDX/сцены/scene2d/щ/ProgressBar.java # L129). Попробовали ли вы вставить его в какую-то сдерживание и вместо этого повернуть? – cfrick

+0

Большинство виджета пользовательского интерфейса не поддерживают произвольное вращение, потому что они полагаются на ножницы OpenGL для обрезки. – Tenfour04

+0

@cfrick ahh, который должен быть этим. Я попробую, когда вернусь домой. – user865881

ответ

0

Most UI widgets cannot be transformed directly, по причине эксплуатационные качества. По-прежнему есть геттеры/сеттеры для вращения, но это может ввести в заблуждение.

Однако их можно поставить в поле Group и трансформировать группу.

ProgressBar progressBar = ... 
Group g = new Group(); 
g.addActor(progressBar); 
g.setRotation(45); 

stage.addActor(g); 
Смежные вопросы