メインコンテンツまでスキップ

画面のスケール係数を取得 (screen.scale_factor)

宣言

local factor = screen.scale_factor()

戻り値

  • factor
    数値。現在のデバイスにおける画面ピクセルと論理ポイント (pt) の倍率を表します

説明

戻り値は、画面の実際のピクセル解像度と論理座標系の間で換算するために使用します。
一般的な値は、2.0(大部分の Retina iPhone および iPad)、3.0(Plus/Max シリーズおよび近年のフルスクリーン iPhone)です。現在の iPhone では、非 Retina の 1.0 倍はほとんどありません。
screen.size() と組み合わせると、論理ポイントのサイズを算出できます:width_pt = width_px / factor。画像検索と色取得は引き続きピクセルサイズに基づきます。UI ベースのポイント座標を扱う場合にのみ変換が必要です。

-- ピクセル解像度を論理ポイントへ換算します
local w_px, h_px = screen.size()
local scale = screen.scale_factor()
local w_pt, h_pt = w_px / scale, h_px / scale

sys.log(string.format("像素分辨率: %dx%d, 倍率: %.1fx, 逻辑点: %.0fx%.0f", w_px, h_px, scale, w_pt, h_pt))

-- スケール係数に基づいて UI 座標を調整します
local x_point, y_point = 100, 200 -- Apple HIG またはサードパーティーの UI 記述に基づくポイント座標です
local x_px, y_px = x_point * scale, y_point * scale

touch.tap(x_px, y_px)

注記:上記のコードでは、この章で扱わない関数 sys.logtouch.tap を使用しています