gpt4 book ai didi

java - libgdx 背景纹理区域重复

转载 作者:太空狗 更新时间:2023-10-29 14:17:54 25 4
gpt4 key购买 nike

我是 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");
}
}

最佳答案

我在解决问题方面取得了进展。我使用 setWrap 方法重复我的纹理:

   public class Background extends AbstractGameObject {

private TextureRegion regBackground;

public Background (int width, int heigth) {
init(width, heigth);
}

private void init (int width, int heigth) {
dimension.set(width, heigth);
regBackground = Assets.instance.levelDecoration.background;

origin.x = -dimension.x/2;
origin.y = -dimension.y/2;
}

public void render (SpriteBatch batch) {
TextureRegion reg = null;
reg = regBackground;

Texture test = reg.getTexture();
test.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);
batch.draw(test,
position.x + origin.x, position.y + origin.y,
test.getWidth(), test.getHeight(),
reg.getRegionX(), reg.getRegionY(),
reg.getRegionWidth(), reg.getRegionHeight()
);

}
}

现在,我得到了这个,但我只想重复我的背景图像(木方 block )。

http://s24.postimg.org/c1m92ffwx/Capture_du_2013_11_12_15_49_03.jpg

问题是 getTexture() 恢复了所有图像,而不仅仅是我的背景。我该如何解决这个问题?

关于java - libgdx 背景纹理区域重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19905117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com