2014-02-16 103 views
2

我正在使用電暈模擬器。我顯示了display.contentWidth和display.contentHeight。寬度爲320,高度爲480.我還製作了一個文字說「你好」,並用定位玩。Lua在Corona SDK混亂中的位置

我注意到x值看起來相當準確,我將文本的x值設置爲0,並且它的中心將被覆蓋一半,並顯示一半。 x值爲320的結果相同,但在手機模擬器的另一側。

當我將y值設置爲0時,它正好位於Carrier和假信號強度符號下,完全顯示。當我將y值設置爲最大高度的480倍時,距離手機底部約有一英寸的距離。 - 我的想法是,它應該是一半垂直覆蓋兩種方式:-S

在電暈模擬器我正在查看它在Iphone5,並注意當我改變爲Iphone它會揭示,因爲我的預期。隨着Iphone 5,機器人,和其他一些看法,它會給我這些結果。

*我的問題是我的程序在所有設備上看起來都一樣,或者是電暈模擬器準確顯示它的樣子。如果它在各種設備上顯示不同,爲什麼?

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

了iPhone 5的分辨率是iPhone 4的(顯然)不同,而不是接受不同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

古實

2

每個對象具有矩形邊界如下面的圖1。這裏有一個文本對象,邊界用黑色表示。

enter image description here

red dot頂部是對象的默認錨點。 如果您沒有將文本的x和y位置指定爲(obj.x = ... & obj.y = ...),則corona會根據顯示對象創建行中的點(即, ,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

保持編碼..................: )