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

Fig*_*gör 0 reference displayobject coronasdk

我试图理解Corona中的那些参考点.据说默认参考点是对象的中心,但是当我运行此代码时,textObject中心的x位置不是100而是150

  local textObject = display.newText(  "Hello World!", 100, 100, nil , 20 )
Run Code Online (Sandbox Code Playgroud)

我在屏幕上显示了触摸事件的位置并打印了触摸位置的x和y位置:

  local function onScreenTouch(event)
      print("x: "..event.x.."  y: "..event.y);
  end
  Runtime:addEventListener("tap", onScreenTouch)
Run Code Online (Sandbox Code Playgroud)

Rob*_*cle 5

非常好的问题,这是让我疯了很长时间的事情.

默认情况下,参考点是display.CenterReferencePoint,除非您将X,Y作为参数传递给API调用.在大多数情况下(对于矩形),传递X,Y仅为对象的初始绘制变为左上角参考点.线路当然是你通过终点,对于圆圈你的X,Y是中心.

myRect = display.rect(X, Y, width, height)  -- X, Y = Top, Left
Run Code Online (Sandbox Code Playgroud)

在这种情况下,X和Y代表框的左上角,但是如果你这样做:

myRect.x = X -- X = center of object
myRect.y = Y -- Y = center of object
Run Code Online (Sandbox Code Playgroud)

那么你现在正在使用一个中心参考点,除非你明确地将它改回别的东西.现在因为这令人困惑,我倾向于这样做:

myRect = display.rect(0,0, width, height)
myRect.x = 100
myRect.y = 100
Run Code Online (Sandbox Code Playgroud)

就像我真正只使用中心点定位事物一样.

希望能够解释它.