Corona中显示对象的默认参考点

时间:2013-01-23 16:16:58

标签: reference corona displayobject

我试图理解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)

1 个答案:

答案 0 :(得分: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

就像我实际上只使用中心点定位一样。

希望能够解释它。

罗布