我正在尝试在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);
答案 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个文件并执行与文档中所写相同的操作。