我在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()方法中,我绘制了精灵
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();
但实际呈现的是一个空白的白色屏幕。我做错了什么?
答案 0 :(得分:1)
您应该使用
mCamera = new OrthographicCamera(mWidth, mHeight);
代替
mCamera = new OrthographicCamera(1, mHeight/mWidth);
在大多数情况下,除非你想以不同的方式扩展事物。
检查您的代码是否已成功找到并读取文件。如果没有,请检查完整路径,文件扩展名,中间空格等内容。
在调整大小方法中,请尝试添加以下
mBatch.getProjectionMatrix().setToOrtho2D(0, 0, mWidth, mHeight);
如果它即使在那时也不起作用,我建议您在使用setup ui创建新项目时回退到正在绘制的工作libgdx徽标精灵。从那里慢慢改变一切。
答案 1 :(得分:1)
据我所知,mSprite.setSize(0.99f, 0.99f);
设置精灵的像素宽度和高度,而setScale
缩放精灵的尺寸。将setSize
设置为更大的内容(例如256 x 256)应该可以使您的精灵可见,并将其设置为屏幕的分辨率,如果一切顺利,应使其填满屏幕。 Tanmay Patil联系的例子非常好,如果你遇到麻烦,请查看它们。