Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据屏幕分辨率在libgdx中缩放精灵?_Java_Android_Libgdx_Textures_Scale - Fatal编程技术网

Java 如何根据屏幕分辨率在libgdx中缩放精灵?

Java 如何根据屏幕分辨率在libgdx中缩放精灵?,java,android,libgdx,textures,scale,Java,Android,Libgdx,Textures,Scale,我正在尝试缩放纹理以适应屏幕宽度。这是我尝试的,但它只是重复纹理。它不能扩展它 在init方法中: TextureLoader.TextureParameter param = new TextureLoader.TextureParameter(); param.minFilter = Texture.TextureFilter.MipMapLinearLinear; param.genMipMaps = true; param.wrapU = Texture.TextureWrap.Clam

我正在尝试缩放纹理以适应屏幕宽度。这是我尝试的,但它只是重复纹理。它不能扩展它

在init方法中:

TextureLoader.TextureParameter param = new TextureLoader.TextureParameter();
param.minFilter = Texture.TextureFilter.MipMapLinearLinear;
param.genMipMaps = true;
param.wrapU = Texture.TextureWrap.ClampToEdge;
param.wrapV = Texture.TextureWrap.ClampToEdge;
manager.load("textures/texture.png", Texture.class, param);
在渲染方法中:

Texture tex = manager.get("textures/texture.png", Texture.class);
float scale = (float)( (float)Gdx.graphics.getWidth() / (float)(tex.getWidth()));

batch.begin();
Sprite s = new Sprite(tex, 0,0,tex.getWidth(),tex.getHeight());

s.setPosition(0, 0);
s.setOriginCenter();
//s.setScale(scale);
s.setSize(Gdx.graphics.getWidth(), scale * tex.getHeight());
s.setOrigin(0,0);
s.draw(batch);
batch.end();

有人知道我做错了什么吗?

显然,这是因为我在使用mipmap。如果没有mipmapping,精灵将适当缩放。


看起来您使用的是假想的“像素”单位,请阅读以下内容:为什么这么复杂?什么是复杂的?我需要创建单独的摄影机或视口吗?为什么libgdx中没有像setScale()这样的简单函数?我的意思是,3D对象只是按照我想要的方式缩放,但2D似乎让它膨胀了。我觉得这篇文章也很难理解。@Z0q关于
camera
和/或
Viewport
s没有什么复杂的地方。一旦你理解了它们,它们可以让很多事情变得容易很多。有一件事你必须永远记住:你不想使用像素。设备有不同的分辨率,你真的不想有一个分辨率依赖的游戏,尤其是当你为android设备开发的时候!因此,阅读
摄影机
/
视口
教程,您将看到它的优势
param.minFilter = Texture.TextureFilter.MipMapLinearLinear;
param.genMipMaps = true;