Libgdx java 精灵大小问题

Libgdx java sprite size issue

所以我正在创建一个精灵并使用不同的class将其绘制到屏幕上。

我现在想在每个屏幕上将其缩放为相同的纵横比 ratio/size。

我试过使用以下代码来做到这一点:

public Player(Vector2 position, float width, float height, float rotation, float speed) 
{


    super(speed, rotation, width, height, position);

}

public void update() 
{

    width = Gdx.graphics.getWidth() / 10;

    height = Gdx.graphics.getHeight() / 10;


}

但这不起作用,它什么都不做。

我也试过将宽度和高度设置为静态值,例如 100 x 100。但这也不起作用。

感谢您的帮助! :)

编辑: 添加基础和衍生 classes:

这是实体的代码 class:

public abstract class Entity {

    public void setPosition(Vector2 position) {
        this.position = position;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public Rectangle getBounds() {
        return bounds;
    }

    public void setBounds(Rectangle bounds) {
        this.bounds = bounds;
    }
}

这是 MoveEntity 的代码 class:

public MoveEntity(float speed, float rotation, 
                  float width, float height, 
                  Vector2 position) {

    super(position, width, height);


    this.speed    = speed; 
    this.rotation = rotation; 
    vel           = new Vector2(0, 0); 

    } 

    public Vector2 getVel() { 
        return vel; 
    } 

    public void setVel(Vector2 target) { 
        this.vel = target; 
    } 

    public float getRotation() { 
        return rotation; 
    } 

    public void setRotation(float r) {
    ..............///

可能是不会说英文,不过你说个sprite我也没看到他什么网站,反正。

假设这是您所指的精灵 -> spr_player

您可以通过多种方式执行此操作,但要基于您发布的这行代码

变量class。 (用于测试):

float width  = Gdx.graphics.getWidth() / 10;
float height = Gdx.graphics.getHeight() / 10;

尝试使用这个:

sb.draw(spr_player, p.getPosition().x, p.getPosition().y
        width, height);

this is the funtion in the Class SpriteBatch:

public void draw (Texture texture, float x, float y, 
                  float width, float height)

您也可以在 Sprite class 渲染之前的某处使用 setSize。

spr_player.setSize(width, height);

this is the funtion in the Class Sprite:

public void setSize (float width, float height)

如果在游戏过程中大小可能不会改变,可以在创建或显示方法中调用setSize,或者在构造函数中这样调用,如果你想要的结果:

Sprite spr_player = new Sprite (your_texture, width, height);

this is the funtion in the Class Sprite:

public Sprite (Texture texture, int srcWidth, int srcHeight)