LibgdxのメソッドSprite.setSize(float x, float y)
に問題があります。スプライトのサイズや寸法には影響しません。 setSize()メソッドに渡したものはすべて修正されたままです。
これが私のコードです:
public class GameScreen implements Screen {
OrthographicCamera camera;
SpriteBatch batch;
Texture carTexture;
Sprite carSprite;
public GameScreen()
{
}
@Override
public void render(float delta) {
// TODO Auto-generated method stub
Gdx.gl.glClearColor(0,0,0,0);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
carSprite.setSize(16, 32);
batch.draw(carSprite, 0 , 0);
batch.end();
camera.update();
}
@Override
public void resize(int width, int height) {
// TODO Auto-generated method stub
camera.viewportWidth=width;
camera.viewportHeight=height;
camera.update();
}
@Override
public void show() {
// TODO Auto-generated method stub
camera = new OrthographicCamera();
batch = new SpriteBatch();
carTexture = new Texture(Gdx.files.internal("NetRace.png"));
carTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
carSprite = new Sprite(carTexture);
}
@Override
public void hide() {
// TODO Auto-generated method stub
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
}
私の間違いを見つけて頂けますか?
問題は解決しました。
Sprite.draw(batch);
メソッドは渡されたSpriteからテクスチャを受け取り、修正された描画プロセスでテクスチャを使用するため、Batch.draw(Sprite sp, float x, float y);
を使用する代わりにBatch.draw(...)
を使用する必要がありました。幅と固定高さ。
この問題を解決する別の方法は、SpriteBatch
クラスのbatch.draw(Sprite, float x, float y, float width, float height);
メソッドを使用することです。