Reputation: 23
I have just recently started using libgdx.I have some doubts regarding rendering of texture region.Here is my code
@Override
public void create() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, h/w);
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/libgdx.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);
sprite = new Sprite(region);
sprite.setSize(1f, 1f * sprite.getHeight() / sprite.getWidth());
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
sprite.setRotation(30);
}
In this case sprite renders perfectly. But if i change line
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
to
sprite.setOrigin(any constant values like 50, sprite.getHeight()/2);
i only get blue screen. same thing happens when i set position this way.
Also if i use something like
sprite.setOrigin(0.53*sprite.getWidth()/2, sprite.getHeight()/2);
it renders as expected, why does it renders as expected when i use any multiple of sprite.getWidth() and not when i use constant of same value.
EDIT:
Here are my resize and render methods
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
@Override
public void resize(int width, int height) {
}
I have not changed anything here.
Upvotes: 1
Views: 103
Reputation: 1793
This might depend on your rendering camera setting. It cuold be caused by setting the origin out of bounds. In other words, try setting it to (for example) much lower or much higher values.
Upvotes: 1