我试图理解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)
答案 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
就像我实际上只使用中心点定位一样。
希望能够解释它。
罗布