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

时间:2014-02-24 17:41:53

标签: android size screen haxe openfl

什么是接近Android手机各种屏幕比例的最佳方法?

目前,我使用EXACT_FIT,它强制(拉伸)应用程序到目标屏幕。但是,如何动态地将内容重新调整为屏幕比例,因此内容在视觉上保持相同的比例。

4 个答案:

答案 0 :(得分:2)

如果要动态调整大小和位置元素,则必须获得实际的屏幕分辨率,然后根据某些“基本”分辨率值计算调整大小比率。

您可以使用

获取屏幕尺寸

lib.current.stageWidth lib.current.stageHeight

请记住,要使这些值起作用,您必须在项目配置文件的android上将窗口尺寸设置为0。

答案 1 :(得分:2)

要获得正确且真实的WINDOW大小,请使用:

Lib.application.window.width
Lib.application.window.height

它并不总是与此相同:

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

答案 2 :(得分:0)

我建议您通过反复试验找到最适合所有屏幕的尺寸。一旦你发现这个屏幕尺寸,你的游戏边框就会比大多数玩家看到的更远。然后,这将允许您填充每个屏幕并保持纵横比,同时还删除边缘周围的任何尴尬空白区域。执行此操作后,您应该能够缩放屏幕以适应屏幕的高度或宽度(这可以保持纵横比)并且没有任何缩放问题。

答案 3 :(得分: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文字将处于相同的明显位置。