2

私はまだルアとコロナに不慣れで(正確には3日)、複数のデバイスを使用して画面上のオブジェクトを試しています。私が理解していることから、オブジェクトを自動的に再配置するには、画面サイズを取得し、必要な調整を行うために計算を行う必要があります。これが私がやろうとしていることのサンプルです:

obj1 = display.contentWidth*0.50

これにより、オブジェクトが画面の中央に配置されますが、これが効果的ではないように見える場合があるため、オブジェクトを自動的に再配置するためのより良い方法は何ですか? 特に、画面の中心から離れたオブジェクト。

4

2 に答える 2

2

私がこれを行う方法は、デバイスの側面または中央から物事が配置されるという原則に基づいています。ところで、これには水平アプリを使用します。

何かを左端または右端に固定する必要があります。画面の上部に固定する必要があるものと、中心から少し離れている必要があるものがあります。

この画像を考えてみましょう: ゲームのスクリーンショット

ホームアイコンと設定アイコンは、左端から数ピクセル離れている必要があります。また、上から数ピクセル下にある必要があります。固定数を使用してこれらを配置します。

homeIcon.x = 32
homeIcon.y = 32
gearIcon.x = 32
gearIcon.y = 64  -- or whatever numbers they really are.

右側のスコアは、右端と上部から一定の距離にある必要があります。

scoreText.x = display.contentWidth - 64
scoreText.y = 32

下部の位置にあるトルコは、デバイスの幅の形状に基づいて変化するべきではありませんが、デバイスの高さに基づいて移動する可能性があります。

turkey.x = display.contentCenterX
turkey.y = display.contentHeight - 64

この例のiPhoneよりも幅が狭いiPadでは、ホーム、ギア、スコアのボタンが中央に近くなります。iPhone 5またはワイドスクリーンAndroidでは、それらは広がります。

上記の例は、中心となるアイデアの一部にはあまり役立ちません。このスクリーンショットはありませんが、ユーザー名とパスワードを収集していて、送信ボタンがあるゲームのログインフォームをレイアウトしているとしましょう。次のように配置できます。

 usernameField.y = display.contentCenterY - 64
 passwordField.y = display.contentCenterY 
 submitButton.y = display.contentCenterY + 64

そうすれば、デバイスの高さに関係なく、これらのUI要素は中心から同じ距離にとどまり、フォームの見栄えが良くなります。上から一定の距離を使用した場合、フォームはデバイスのサイズに基づいて移動します。ここで彼らの位置は同じままです。

于 2013-03-18T01:52:18.697 に答える
2

私は別の方法でそれをやっています。これはあなたを助けるかもしれないと思います。私の意見では、幅と高さの乗数の値を作成し(コーディングしているシミュレーターに応じて)、幅または高さの各パラメーターにこれを掛けます(以下のように):

--------------------------------------------------------------------------
       -- choosing xMultiplier and yMultiplier values --
--------------------------------------------------------------------------
  local xMultiplier = display.contentWidth/320  
  local yMultiplier = display.contentHeight/480
     --[[ I used 320 here because i'm using iPhone Simulator 
         (320 is the width of the simulator you are coding in)
          I used 480 here because i'm using iPhone Simulator 
          (480 is the height of the simulator you are coding in)--]]


--------------------------------------------------------------------------
       -- creating background and positioning it --
--------------------------------------------------------------------------
  local bg = display.newImageRect("bg.png",320*xMultiplier,480*yMultiplier)
  bg.x = 160*xMultiplier ; bg.y = 240*yMultiplier

--------------------------------------------------------------------------
       -- creating object and positioning it -- 
--------------------------------------------------------------------------
  local rect = display.newImageRect(0,0,50*xMultiplier,50*yMultiplier)
  rect.x = 160*xMultiplier ; rect.y = 100*yMultiplier

--------------------------------------------------------------------------

: プロジェクトで config.lua ファイルを使用している場合、これは機能しない可能性があります。

長所: 必要な画像は 1 つだけです。

短所: 高解像度のデバイスでは、画像の鮮明さに影響を与える可能性があります。したがって、適切な解像度の画像を選択してください。

コーディングを続けてください... :)

于 2013-03-14T09:30:03.557 に答える