如何在Libgdx中调整sprite的大小? [英] How to resize a sprite in Libgdx?

查看:123
本文介绍了如何在Libgdx中调整sprite的大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Libgdx中遇到了方法 sprite.setSize(float x,float y)的问题。它不会影响精灵的大小或尺寸。无论我传递给setSize()方法,它们都会保持固定。

I have a problem with the method sprite.setSize(float x, float y) in Libgdx. It does not affect the size or the dimensions of the sprite. They remains fixed whatever I pass to the setSize() method.

这是我的代码

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
    }
}

你能找到我的错误吗?

推荐答案

问题解决了。

我必须使用精灵.draw(batch); 而不是使用 Batch.draw(Sprite sp,float x,float y); ,因为 Batch.draw(...)方法从传递的精灵中获取纹理,并在绘制过程中使用具有固定宽度和固定高度的纹理。

I had to use sprite.draw(batch); instead of using Batch.draw(Sprite sp, float x, float y); since the Batch.draw(...) method takes the texture from the passed sprite and uses the texture in the drawing process which has a fixed width and a fixed height.

解决这个问题的另一种方法是使用 batch.draw(Sprite,float x,float y,float width,float height); SpriteBatch 类中的方法。

Another way to solve this problem is to use the batch.draw(Sprite, float x, float y, float width, float height); method in the SpriteBatch class.

这篇关于如何在Libgdx中调整sprite的大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆