0

私はコロナのそれらの基準点を理解しようとしています。デフォルトの基準点はオブジェクトの中心であると言われていますが、このコードを実行すると、textObject の中心の x 位置は 100 ではなく 150 になります。

  local textObject = display.newText(  "Hello World!", 100, 100, nil , 20 )

これらの位置をタッチイベントで画面に表示し、タッチされた場所の x および y 位置を出力します。

  local function onScreenTouch(event)
      print("x: "..event.x.."  y: "..event.y);
  end
  Runtime:addEventListener("tap", onScreenTouch)
4

1 に答える 1

5

とても良い質問で、長い間私を夢中にさせたものです。

X、Y をパラメーターとして API 呼び出しに渡す場合を除き、デフォルトでは基準点は display.CenterReferencePoint です。ほとんどの場合 (四角形の場合)、X、Y を渡すと、オブジェクトの最初の描画でのみ左上の基準点になります。もちろん線は終点を通過し、円の場合は X、Y が中心です。

myRect = display.rect(X, Y, width, height)  -- X, Y = Top, Left

その場合、X と Y はボックスの左上隅を表しますが、その後は次のようにします。

myRect.x = X -- X = center of object
myRect.y = Y -- Y = center of object

明示的に別の基準点に戻さない限り、中心基準点を使用していることになります。これは紛らわしいので、私はこれを行う傾向があります:

myRect = display.rect(0,0, width, height)
myRect.x = 100
myRect.y = 100

私が実際に中心点を使用して配置しているだけの方法と同じです。

それがそれを説明することを願っています。

ロブ

于 2013-01-23T22:13:20.833 に答える