[英]Android libGDX about sprite sizes
我正在使用Android中的libGDX进行游戏,并且我对子画面的大小有疑问。 我想使用与景观场景中的屏幕背景相同的精灵,并且我希望该背景与每一个16:9设备完全匹配。
我的问题是我不知道该图片的最佳尺寸是什么,因为如果我制作1920x1080的图片,它将占用大量内存并损害游戏性能,或者如果我制作的图像很少,则在某些情况下看起来会很糟糕设备。 在这种情况下该怎么做?
感谢您的建议。
这是我将如何处理这种情况。 我将选择16:9的相机尺寸,也许是1024 * 576(或其他适合您的尺寸),还可以使用.jpg格式(而不是.png格式)来节省内存,这样可以节省很多空间
在Libgdx中,您不必担心设备大小不同,只要使用相机或正交相机即可。 即使在非16:9的设备上进行拉伸,我也将确保屏幕正常显示
这是一些代码片段
public class LoadScreen extends Screen
{
Game game;
SpriteBatch batcher;
OrthographicCamera cam;
AssetManager manager;
public static BitmapFont font;
private String dir="data/";
public LoadScreen(Game game,SpriteBatch batcher)
{
super(game);
this.game=game;
this.batcher=batcher;
cam = new OrthographicCamera(GameConstants.CAMERA_WIDTH, GameConstants.CAMERA_HEIGHT);
cam.position.set(GameConstants.CAMERA_WIDTH / 2, GameConstants.CAMERA_HEIGHT / 2,0);
manager=new AssetManager();
font = new BitmapFont(Gdx.files.internal("data/billy.fnt"), Gdx.files.internal("data/billy.png"), false);
loadData();
}
private void loadData()
{
manager.load(dir+"monkey",TextureAtlas.class);
manager.load(dir+"levelBg.jpg",Texture.class);
manager.load(dir+"gamescreen.jpg",Texture.class);
manager.load(dir+"apple.png",Texture.class);
}
}
在资产类别中
公共类资产{
public static AssetManager manager;
public static TextureAtlas atlas;
private static String dir = "data/";
public static Sprite levelBg;
public static void load(AssetManager manager)
{
Assets.manager = manager;
loadAtlas();
loadTextures();
loadImageFromAtlas();
loadFont();
}
private static void loadAtlas()
{
atlas = manager.get(dir + "monkey", TextureAtlas.class);
}
private static void loadTextures()
{
levelBg = new Sprite(manager.get(dir + "levelBg.jpg", Texture.class));
gameBg = new Sprite(manager.get(dir + "gamescreen.jpg", Texture.class));
apple = new Sprite(manager.get(dir + "apple.png", Texture.class));
}
}
PS:您可以做一些与您想要的略有不同的操作,但这可以节省大量内存,就好像您将Sprite Sheet制成.jpg一样,图像的透明度也会丢失
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.