2015-10-07 46 views
0

我是corona SDK和以下教程的全新品牌。我注意到,當我定位元素時,它們不會像在教程中那樣出現。例如:Corona SDK - 未出現在預期位置(座標系)的矩形

local testRect = display.newRect(0, 0, 50, 50) 
testRect:setFillColor(0.5,0,0) 

enter image description here

在本教程中,它看起來是這樣的:

enter image description here

我猜矩形上的定位點是0.5,0.5,我會必須將其定位在右側50%,以及左上角50%。它們看起來像在他們的例子中矩形有一個0,0的錨點,並且默認情況下卡在屏幕的邊緣。

爲什麼會有差異?我注意到本教程使用的是iPhone 4 ..但應該如此嗎?

回答

0

我相信他們使用的錨點是0.5,0.5。

我建議你檢查你的build.settings文件..我試過的代碼,並得到了相同的結果,他們不得不..

enter image description here

再次檢查build.settings文件

1

一對夫婦幾年前,Corona SDK進入了他們的Graphics 2.0標準。這一舉措的一部分是讓所有display。*對象在創建時都表現相同。在Graphics 2.0之前,有些對象的X和Y值意味着左上角,而其他意味着中心。使用Graphics 2.0時,創建對象時的所有X和Y值都是對象的中心。

如果您有一個較老的教程,它可能會假設x,y是左上角。在您的示例中,您正在創建內容區域左上角0,0處的對象。由於您的屏幕比定義的內容區域寬,因此0,0不一定總是屏幕的左上角。

我猜你的config.lua將寬度設置爲320,高度設置爲480(始終列爲好像設備處於縱向模式)。但是,您正在使用iPhone 5屏幕,這意味着左上角是-44,0。這就解釋了爲什麼圖像並不是左邊緣。

+0

你如何考慮不同的屏幕尺寸?理想情況下,你總是希望屏幕的左上角爲0,0 .. – hamobi

+0

有幾種不同的方法來攻擊它。有其優點和缺點。一種方法是使用display.screenOriginX來計算左上角,以將額外空間(通常爲負數)添加到您的位置以便到達屏幕邊緣。請參閱https://docs.coronalabs.com/api/library/display/screenOriginX.html。其他選項是使用config.lua計算您的內容區域以確保內容區域填滿屏幕。 https://coronalabs.com/blog/2013/09/10/modernizing-the-config-lua/ –