2015-10-07 43 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/ –