使用libgdx加载图像

时间:2013-02-05 13:06:42

标签: java image libgdx

我正在尝试在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); 

1 个答案:

答案 0 :(得分: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有很多绘制纹理区域的方法

来源:source

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