为什么不同分辨率下的锚点不同?

我正在尝试在屏幕的四个角落放置文本,但我遇到的问题是在某些屏幕分辨率(例如1080 \ * 1920)中,锚点不在角落上。 x值出现了某些原因相同,但是y值改变了,并且不接近屏幕的角落。这是我把一些文本放在右上角的一个例子:

local myText = display.newText( "RIGHT", 0, 0, native.systemFont, 16 )
      myText:setFillColor( 0, 0, 0 )
      myText.anchorX = 1
      myText.anchorY = 0
      myText.x = display.contentWidth
      myText.y = 0

我不明白为什么这在所有屏幕分辨率下都不起作用。

点赞
用户2933219
用户2933219

这将对你有用吗:

-- 顶部
myText.y = display.screenOriginY;

-- 底部
myText.y = display.contentHeight - display.screenOriginY;

-- 右侧
myText.x = display.contentWidth - display.screenOriginX;

-- 左侧
myText.x = display.screenOriginX;
2017-09-16 22:43:44
用户7026995
用户7026995

显示对象的锚点不会改变。

屏幕的坐标系变化取决于缩放模式。因此,左上角点不一定总是 (0, 0)。例如,在 letterbox 模式下,左上角点将是 (display.screenOriginX,display.screenOriginY)

从 Corona 文档 中了解更多内容。

"letterbox" – 缩放内容区域以填充屏幕,同时保持相同的纵横比。整个内容区域将位于屏幕上,但这可能会导致在纵横比与您的内容纵横比不同的设备上出现“黑边”。但是请注意,您仍然可以利用这个“空”区域,并通过将它们定位或将它们扩展到内容区域边界之外来填充可视元素。实际上,如果要确保内容区域中的所有内容都在所有设备的屏幕边界内显示,则“letterbox”是一种理想的缩放模式。

"zoomEven" – 缩放内容区域以填充屏幕,同时保持相同的纵横比。某些内容可能会“流出”与您的内容纵横比不同的设备的屏幕边缘。基本上,“zoomEven”是一个很好的选择,以确保所有设备都填充内容区域,并且在外部边缘附近的内容裁剪是可接受的。
  • Letterbox

enter image description here

  • zoomEven

enter image description here

阅读更多关于内容缩放的内容。

2017-09-17 10:06:21