How to resize a sprite in Libgdx?(如何在 Libgdx 中调整精灵的大小?)
问题描述
我对 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
    }
}
你能找出我的错误吗?
推荐答案
问题解决了.
我不得不使用 sprite.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.
解决这个问题的另一种方法是使用SpriteBatch中的batch.draw(Sprite, float x, float y, float width, float height);方法类.
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 中调整精灵的大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 Libgdx 中调整精灵的大小?
				
        
 
            
        - 获取数字的最后一位 2022-01-01
 - 未找到/usr/local/lib 中的库 2022-01-01
 - 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
 - Eclipse 的最佳 XML 编辑器 2022-01-01
 - 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
 - 转换 ldap 日期 2022-01-01
 - java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
 - 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
 - GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
 - 如何指定 CORS 的响应标头? 2022-01-01
 
						
						
						
						
						
				
				
				
				