Java 使用libgdx加载图像

Java 使用libgdx加载图像,java,image,libgdx,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.

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

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处绘制。通过将纹理和其他参数传递给SpriteBatch也可以实现同样的效果,但是TextureRegion可以方便地使用一个对象来描述这两个参数

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

资料来源:


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

在我的状态下,我有两个单独的图像,一个是64x64,另一个是32x32。我创建了两个纹理区域,并尝试按照我在问题中所写的方式绘制它们。对于0,0位置,它们很好,否则就不行。编辑:在我的程序中,我试图获得像region=new texturereregion(纹理,0,0,64,64)这样的图像;obstacleRegion=新的纹理区域(障碍,0,0,64,64);世界障碍物位置x+=0.001;批量绘制(Assets.obstaclerRegion,world.barrier.position.x,world.barrier.position.y,1,1)如果我将world.barrier.position.x和position.y设置为0,0,则可以,否则不行。这个代码行吗。由于这是评论区,我无法发布更多内容。@Tekinalp请编辑您的问题以包含代码。有关更新和编辑问题的更多详细信息,请参阅StackOverflow常见问题解答:从libgdx javadoc(类SpriteBatch):
draw(TextureRegion region,float x,float y,float width,float height)
“绘制一个左下角位于x,y的矩形,并拉伸该区域以覆盖给定的宽度和高度。”-->但是你设置了1px的宽度和高度,这就是为什么你看不到你的图像。我发现了问题。这是关于摄像机的位置。谢谢你的回答。