与Lua在Corona SDK中的位置混淆

时间:2014-02-16 07:23:16

标签: lua corona

我正在使用电晕模拟器。我显示了display.contentWidth和display.contentHeight。宽度是320,高度是480.我还发了一个文字说“你好”,然后玩定位。

我注意到x值看起来非常准确,我会将文本的x值设置为0,并且它的中心将被覆盖一半并显示一半。 x值为320的结果相同,但在手机模拟器的另一侧。

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

在电晕模拟器中我正在Iphone5中查看它,并注意到当我改为Iphone时它会显示出我所期望的。有了Iphone 5,droid和其他一些视图,它会给我这些结果。

* 我的问题是我的程序在所有设备上看起来都一样,或者电晕模拟器是否准确显示它的外观。如果它在各种设备上显示不同,为什么?

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)

2 个答案:

答案 0 :(得分:2)

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的更多信息,请参阅Corona documentation for XCorona documentation for Y

Cush

答案 1 :(得分:2)

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

enter image description here

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

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

然后放置文本使得红点位于(0,0)。这就是你在状态栏下看到它的原因。

日冕中的常规对象放置如下:

enter image description here

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

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

_w ==> display.contentWidth
_h ==> display.contentHeight

保持编码..................:)