为什么我只获得部分图像? (libGDX,子画面,spriteBatch)

时间:2015-01-30 21:53:50

标签: java libgdx

底部的问题摘要。

这是简单的超级代码,但显然我不明白这个库中发生了什么。当我使用以下代码在libGDX中加载圆形图像时:

public class LevelTest extends ApplicationAdapter implements GestureListener, InputProcessor{
Sprite maze;
SpriteBatch batch;
Texture mazeImage;

@Override
public void create(){
    mazeImage = new Texture(Gdx.files.internal("maze.png"));
    maze = new Sprite(mazeImage);
    maze.setPosition(100, 100);
    maze.setSize(70, 70);
    batch = new SpriteBatch();
}

@Override
public void render(){
    Gdx.gl.glClearColor(0, 0, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    //batch.draw(maze, 0, 0, maze.getOriginX(), maze.getOriginY());
    maze.draw(batch);
    batch.end();
}

它只向我展示圆形图像的四分之一。它应该是一个完整的圆形迷宫,而是只显示图像的右上角1/4。

这是它所显示的: quarter picture

有趣的是,如果我将图像大小从70,70更改为100,100,它似乎将图像的随机部分带入条纹并将它们翻转到图像的另一侧。所以我最终得到重叠,条纹,镜像,1/4图像,如下所示:

jittery image

3。 我尝试使用.jpg而不是显示黑色线条透明的线条。 (见下文)。我通过制作图像的负片(将黑线改为白线)来解决这个问题,但我仍然想知道为什么libGDX使黑色部分变得透明。

jpg black is transparant

  1. 如何让整个图像显示为PNG?
  2. 是什么导致图像口吃并将自身的部分镜像为PNG?
  3. 为什么JPG的颜色倒置(黑色显示白色和白色显示黑色)
  4. 提前感谢您对这些问题的帮助。

1 个答案:

答案 0 :(得分:0)

事实证明我使用的.png图像编码不正确。我使用了一个名为“Lunapic”的网站将白色更改为透明度。感谢Tenfour04,我下载了Gimp并使用它来使白色部分透明,图像全部以libGDX的方式工作。