使用Lua在Corona SDK中的职位混淆。

我正在使用 corona 模拟器。我显示了 display.contentWidth 和 display.contentHeight 。宽度为 320,高度为 480。我还制作了一个文字,写着“你好”,并调整了它的位置。

我注意到 x 值看起来相当准确,我会将文字的 x 值设置为 0,它的中心部分就会被覆盖一半,并露出一半。x 值为 320 时,结果相同,在手机模拟器的另一侧。

当我将 y 值设置为 0 时,它会正好位于运营商和假信号强度符号下方,完全显示出来。当我将 y 值设置为高度最大的 480 时,它会与手机底部有约一英寸的间隙。-- 我的想法是它应该两个方向都垂直地被覆盖一半 :-S

在我正在查看的 corona 模拟器中,我是在 iPhone5 上查看的,并注意到当我切换到 iPhone 时,它会像我预期的那样显示。在 iPhone 5、Android 和其他一些视图中,它会给我这些结果。

* 我的问题是,我的程序在所有设备上看起来是否相同,还是 corona 模拟器准确显示了它的样子。如果在各种设备上显示不同,为什么?

width = display.newText (display.contentWidth .. "px is Width", 200, 200, nil, 30)
height = display.newText (display.contentHeight .. "px is Height", 150,300, nil, 30)

text = display.newText ("Hello", 0, 480, nil, 30)
点赞
用户1609914
用户1609914

iPhone 5 的分辨率与 iPhone 4 不同(显然),但 Corona 并非使用不同的 display.content* 值来处理它,而是使用称为 display.screenOrigin 的东西进行处理。这是正在使用的显示屏和标准显示屏(iPhone/iPhone 4)之间的差异。如果您打印这些值,例如:

print("Origin x = "..tostring(display.screenOriginX))
print("Origin y = "..tostring(display.screenOriginY))

然后您将看到其中一个取决于模拟器的方向,将是“-44”。这是像素间的差异。在您所假设的竖屏方向的示例中,您需要按以下方式定位顶部和底部的 Y:

--For positioning at 'true 0'
obj.y = 0 + (display.screenOriginY)

--Or, for positioning at "true bottom"
obj.y = 0 - (display.screenOriginY)

希望这可以帮助您。有关 display.screenOrigin 的更多信息,请参见 X 的 Corona 文档Y 的 Corona 文档

Cush

2014-02-16 11:36:58
用户1979583
用户1979583

每个对象都有一个矩形边界,如下图1所示。这里有一个文本对象,其边界用黑色表示。

enter image description here

顶部的 红点 是该对象的默认锚点。如果您没有指定文本的 x 和 y 位置(即 obj.x=...& obj.y=...),那么 Corona 将根据显示对象创建行中的点(即 display.newText(""...))定位对象。例如,如果您有以下代码:

local text = display.newText("myText", 0, 0, nil, 30)

那么文本将被放置在红点在(0,0)的位置。这就是为什么您在状态栏下看到它的原因。

Corona中的一般对象放置如下:

enter image description here

下划线的 myText 表示文本对象根据对象创建行中的点的不同定位。即;

local text = display.newText("myText",x,y,nil,30)

_w ==> display.contentWidth

_h ==> display.contentHeight

继续编码......... :)

2014-02-16 12:06:16