从电晕对象的顶部,左侧,宽度和高度获取x,y

时间:2015-08-04 22:17:46

标签: lua corona

美好的一天

我刚刚开始使用Corona,我对这个x和y属性感到困惑。是否可以使用Top,Left,Width和Height属性获取x和y值(如果提供了这些值)?例如,我希望对象位于Left=10Top=0Width=40Height=40。有人可以告诉我如何做到这一点,这可能是图像,文本,文本字段等

3 个答案:

答案 0 :(得分:1)

当然。有几种方法可以做到这一点。

示例1:

local myImage = display.newImageRect( "homeBg.png", 40, 40)
myImage.anchorX = 0; myImage.anchorY = 0 
myImage.x = 10 -- Left gap 
myImage.y = 0  -- Top gap
localGroup:insert(myImage)

此处,将锚点设置为(0,0)将使图像的参考点成为'几何中心到它的左上角。

示例2:

local myImage = display.newImageRect( "homeBg.png", 40, 40)
myImage.x = (myImage.contentWidth/2) + 10
myImage.y = (myImage.contentHeight/2)
localGroup:insert(myImage)

此处,图片的中心-X位置是通过将Left gap添加到image's half width本身来计算的。通过将Top gap添加到image's half height

来计算中心Y位置

您可以使用任何此类方法定位对象。如果您是日冕的初学者,那么以下主题将有助于您更多地了解显示具有特定大小,位置等的对象。

答案 1 :(得分:0)

Corona使用类似笛卡尔坐标系 (0,0)位于 TOP LEFT 您可以在此处查看更多内容:< / p>

https://docs.coronalabs.com/guide/graphics/group.html#coordinates

但是:您可以使用以下代码根据图像宽度和高度获取屏幕边角:

请注意,您应该使用图片更改

local image = display.newImageRect(“images/yourImage.png”, width, height)

--TOP: 

image.y = math.floor(display.screenOriginY + image*0.5)

--BOTTOM:

image.y = math.floor(screenH - display.screenOriginY) - image.height*.5 

--LEFT: 

image.x = (screenOffsetW*.5) + image*.5

--RIGHT: 

image.x = math.floor(screenW - screenOffsetW*.5) - image.width*.5

答案 2 :(得分:0)

Corona SDK显示对象具有可以读取或设置的属性:

X = myObject.x - 获取myObject的当前中心(默认情况下) width = myObject.width

您也可以设置这些值....

myObject.x = 100 - 将对象置于内容区域左侧100px处。

默认情况下,Corona SDK基于他们的中心,除非您更改它的定位点:

myObject.anchorX = 0
myObject.anchorY = 0

myObject.x = 100
myObject.y = 100

通过将锚点设置为0,然后.x和.y指向对象的左上角。