java - 如何根据屏幕分辨率缩放 libgdx 中的 Sprite ?

标签 java android libgdx textures scale

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

在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, Sprite 会适本地缩放。

param.minFilter = Texture.TextureFilter.MipMapLinearLinear;
param.genMipMaps = true;

关于java - 如何根据屏幕分辨率缩放 libgdx 中的 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34497209/

相关文章:

java - 使用 SnakeYaml 转储带引号的值

java - 通过 Ajax 创建 Java 对象

android - Maps v3.0.0 Beta 的 Proguard 规则

java - 使动画居中 [libGDX]

java - libGDX ParticleEffect 运行时速度变化

java - jackson :从 json 中删除一些值并保留一些空值

java - 如果架构与数据库结构不同,如何将 graphql 与 jpa 一起使用

android - 如何在没有 savedInstanceState 的情况下恢复 fragment 状态?

android - Xamarin/安卓 : F# scoping - how do I see a namespace in a different file?

java - 渲染激光束 - 如何使其面向相机?