0

我正在尝试在 libgdx 库构建的 java 应用程序上加载两个图像。我加载了背景图像但是,如果我没有将图像的位置设置为(0,0),我无法将其他图像加载到屏幕上。例如; 我将图像的位置设置为0,0,没有问题。但是,当我将图像的位置设置为 20、0 时,就看不到了。

batch.draw(Assets.coinRegion, position.x, position.y, 1, 1)

我正在尝试使用上面的代码绘制图像。

谢谢你。

编辑:

obstacle = loadTexture("data/obstacle.png"); 
obstacleRegion = new TextureRegion(obstacle, 0, 0, 64, 64);
world.obstacle.position.x += 0.001; 
batch.draw(Assets.obstacleRegion,
world.obstacle.position.x, world.obstacle.position.y, 1, 1); 
4

1 回答 1

2

TextureRegion 类描述了纹理内的一个矩形,对于仅绘制纹理的一部分很有用。

private TextureRegion region;
...
texture = new Texture(Gdx.files.internal("image.png"));
region = new TextureRegion(texture, 20, 20, 50, 50);
//if you have 2 images in image.png add new region and specify rectangular:
//region2 = new TextureRegion(texture, 70, 0, 100, 100);
...
batch.begin();
batch.draw(region, 10, 10);
batch.end();

这里的 20, 20, 50, 50 描述了纹理的一部分,然后在 10,10 处绘制。同样可以通过将 Texture 和其他参数传递给 SpriteBatch 来实现,但 TextureRegion 可以方便地使用一个对象来描述两者。

SpriteBatch 有许多绘制纹理区域的方法

来源:来源

如果您在 1 中有 2 个图像,则使用多个“区域”变量..(region1 = new ... 和 region2 = new...),否则加载 2 个文件并执行文档中所写的相同操作。

于 2013-02-05T13:30:19.687 回答