0

我正在尝试了解 Corona 中的这些参考点。据说默认参考点是对象的中心,但是当我运行此代码时,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

非常好的问题,这让我发疯了很长时间。

默认情况下,参考点是 display.CenterReferencePoint,除非您将 X、Y 作为参数传递给 API 调用。在大多数情况下(对于矩形),传递 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 回答