4

我正在尝试Sprite在 LibGDX 中绘制一个。如果我使用指定要使用的纹理的构造函数,我可以做到这一点,例如

Sprite sprite = new Sprite(new Texture(Gdx.files.internal("path")));

但如果我改为使用Sprite();并尝试使用setTextureand/or setRegion,则不会绘制任何图片。API 说在绘制任何东西之前需要设置“纹理、纹理区域、边界和颜色”。我已经调用了setTexture, setRegionsetColor尽管没有绘制任何内容。

主要问题:如果我使用默认Sprite()构造函数,之后我必须做什么才能确保它绘制到屏幕上(在 a 中SpriteBatch)?

4

1 回答 1

3

我假设代码需要执行与Sprite(Texture) ctor相同的步骤:

public Sprite (Texture texture) {
    this(texture, 0, 0, texture.getWidth(), texture.getHeight());
}

public Sprite (Texture texture, int srcX, int srcY, int srcWidth, int srcHeight) {
    if (texture == null) throw new IllegalArgumentException("texture cannot be null.");
    this.texture = texture;
    setRegion(srcX, srcY, srcWidth, srcHeight);
    setColor(1, 1, 1, 1);
    setSize(Math.abs(srcWidth), Math.abs(srcHeight));
    setOrigin(width / 2, height / 2);
}

这些都是公共方法。

于 2013-02-11T04:00:32.830 回答