[英]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.