我是 libdgx 开发和游戏开发的新手。我正在阅读 Andreas Oehlke 的《Learning Libgdx Game Development》一书,并且我正在尝试并行开发自己的游戏。我尝试添加背景时遇到问题。在书中,他使用了一种颜色,所以很简单。但我想从纹理图集中添加图像。图像太小无法恢复所有屏幕,所以我想重复一遍。我不能使用 regBackground.setWrap(TextureWrap.Repeat, TextureWrap.Repeat) 因为 regBackground 不是纹理。我怎样才能正确解决我的问题?
public class Background extends AbstractGameObject {
private TextureRegion regBackground;
public Background () {
init();
}
private void init () {
dimension.set(1f, 1f);
regBackground = Assets.instance.levelDecoration.background;
}
public void render (SpriteBatch batch) {
TextureRegion reg = null;
reg = regBackground;
batch.draw(reg.getTexture(),
position.x, position.y,
origin.x, origin.y,
dimension.x, dimension.y,
scale.x, scale.y,
rotation,
reg.getRegionX(), reg.getRegionY(),
reg.getRegionWidth(), reg.getRegionHeight(),
false, false);
}
}
在我的 Assets 类中,我有这段代码可以在纹理图集中找到该区域:
public class AssetLevelDecoration {
public final AtlasRegion background;
public AssetLevelDecoration (TextureAtlas atlas) {
background = atlas.findRegion("background");
}
}