管理不同移动设备屏幕尺寸 - Haxe,OpenFL

3
什么是处理Android手机各种屏幕比例的最佳方法?
目前,我使用EXACT_FIT来强制(拉伸)应用程序适应目标屏幕。但是,如何动态调整内容大小以适应屏幕比例,使内容保持视觉上的相同比例?
4个回答

2
要获得正确和真实的窗口大小,请使用以下方法:
Lib.application.window.width
Lib.application.window.height

这并不总是相同的:

Lib.current.stage.width
Lib.current.stage.height

2
如果你想动态地调整和定位元素,你需要获取实际屏幕分辨率,然后根据一些“基准”分辨率值计算一个调整比例。
你可以使用以下代码获取屏幕尺寸: lib.current.stageWidth lib.current.stageHeight
请记住,在Android上,为了使这些值起作用,你必须在项目配置文件中将窗口尺寸设置为0。

0
我建议将您的内容位置和大小定义为屏幕宽度和高度的百分比。在伪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_WIDTHSCREEN_HEIGHT 可能会改变,但是title文本将保持在相同的表现位置。


0

我建议你通过试错找到适合大多数或所有屏幕的尺寸。一旦找到这个屏幕尺寸,请在游戏中添加一个边框,将其扩展到大多数玩家看不到的区域。然后,您就可以填充每个屏幕,并保持纵横比,同时消除边缘周围任何尴尬的空白空间。完成此操作后,您应该能够将屏幕缩放以适应屏幕的高度或宽度(保持您的纵横比),而不会出现任何缩放问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接