gpt4 book ai didi

android - 为什么我的 Sprite 没有被正确绘制(libgdx)?

转载 作者:行者123 更新时间:2023-11-29 21:12:15 25 4
gpt4 key购买 nike

我在 jpg 文件中有一个 1024x1024 像素的图像。我正在尝试使用 libgdx 在屏幕上渲染它,使其填满整个屏幕。在这个阶段,我不关心图像保持其纵横比。

在我的 show() 方法中,我解析 jpg 并初始化 Sprite :

mWidth = Gdx.graphics.getWidth();
mHeight = Gdx.graphics.getHeight();

mCamera = new OrthographicCamera(1, mHeight/mWidth);
mBatch = new SpriteBatch();

mTexture = new Texture(Gdx.files.internal("my jpg file"));

mTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

TextureRegion region = new TextureRegion(mTexture);

mSprite = new Sprite(region);
mSprite.setSize(0.99f, 0.99f);
mSprite.setOrigin(mSprite.getWidth()/2, mSprite.getHeight()/2);
mSprite.setPosition(-mSprite.getWidth()/2, -mSprite.getHeight()/2);

然后在 render() 方法中,我这样绘制 Sprite

Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

mBatch.setProjectionMatrix(mCamera.combined);
mBatch.begin();
mSprite.draw(mBatch);
mBatch.end();

但实际呈现的只是一个空白的白色屏幕。我做错了什么?

最佳答案

  1. 你应该使用

    mCamera = new OrthographicCamera(mWidth, mHeight);

    代替

    mCamera = new OrthographicCamera(1, mHeight/mWidth);

    在大多数情况下,除非您想以不同的方式扩展事物。

  2. 检查您的代码是否真的找到并成功读取了文件。如果不是,请检查完整路径、文件扩展名、中间空格等。

  3. 在调整大小的方法中,尝试添加以下内容

    mBatch.getProjectionMatrix().setToOrtho2D(0, 0, mWidth, mHeight);
  4. 如果它仍然无法正常工作,我建议您在使用 setup ui 创建新项目时回退到正在绘制的工作 libgdx Logo Sprite 。从那里开始慢慢改变。

作为引用,使用 https://code.google.com/p/libgdx-users/wiki/Sprites

祝你好运。

关于android - 为什么我的 Sprite 没有被正确绘制(libgdx)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com