Вот как бы я подошел к ситуации. Я выберу размер моей камеры 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));
}
}
P.S. Вы можете делать что-то немного по-другому, как хотите, но это экономит много памяти, как если бы вы сделали лист спрайтов как .jpg, прозрачность изображений будет потеряна.
person
Kumar Saurabh
schedule
17.07.2015