解决Android手机各种屏幕比例的最佳方法是什么?管理不同的手机屏幕尺寸 - Haxe,OpenFL
目前,我使用EXACT_FIT,它强制(拉伸)应用程序到目标屏幕。但是,如何动态地将我的内容重新调整到屏幕比例,因此内容仍以相同的比例呈现。
解决Android手机各种屏幕比例的最佳方法是什么?管理不同的手机屏幕尺寸 - Haxe,OpenFL
目前,我使用EXACT_FIT,它强制(拉伸)应用程序到目标屏幕。但是,如何动态地将我的内容重新调整到屏幕比例,因此内容仍以相同的比例呈现。
如果要动态调整大小和定位元素,必须获得实际的屏幕分辨率,然后根据某个“基本”分辨率值计算大小调整比率。
您可以
lib.current.stageWidth lib.current.stageHeight
记住,这些值来工作,你有你的窗口尺寸设置为0,在Android上你的项目配置文件中获取的屏幕尺寸。
我建议您通过试错找到适合所有屏幕的尺寸。一旦你找到这个屏幕大小,你的游戏就会增加一个边界,比大多数玩家会看到的更远。这样可以让您填充每个屏幕并保持纵横比,同时还可以消除边缘周围任何难以处理的空白区域。完成此操作后,您应该能够缩放屏幕以适应屏幕的高度或宽度(它始终保持您的宽高比),并且不存在任何缩放问题。
我会建议定义您的内容的位置&大小作为屏幕宽度和高度的百分比。在伪haXe的代码(我正在学习HAXE/HaxeFlixel现在;)):
class Registry {
...
static var SCREEN_WIDTH;
static var SCREEN_HEIGHT;
...
static var X_UI_HUD_TITLE = 0.15;
static var Y_UI_HUD_TITLE = 0.05;
}
...
class HUD {
var title:FlxText;
public function new() {
title = new FlxText();
title.x = Registry.SCREEN_WIDTH * Registry.X_UI_HUD_TITLE;
title.y = Registry.SCREEN_HEIGHT * Registry.Y_UI_HUD_TITLE;
}
}
这样,SCREEN_WIDTH
和SCREEN_HEIGHT
可能会改变,但title
文本将在相同的明显位置。
得到正确和真实的窗口中使用这个尺寸:
Lib.application.window.width
Lib.application.window.height
它并不总是thesame这样:
Lib.current.stage.width
Lib.current.stage.height