从 Corona 对象的 Top,Left,Width 和 Height 中获取 x,y 坐标。

大家好

我刚开始使用 Corona,对于它的 x 和 y 属性感到有些困惑。如果提供了 Top、Left、Width 和 Height 属性,是否可以通过这些属性获取 x 和 y 值呢?例如,我希望一个对象位于 Left=10Top=0Width=40Height=40。请问有人能建议我如何实现这个功能吗?这可能是针对图像、文本、文本域等元素的。

点赞
用户3739502
用户3739502

Corona 使用类似于笛卡尔坐标系的坐标系统,但 (0,0) 在左上方,你可以在这里查看更多信息:https://docs.coronalabs.com/guide/graphics/group.html#coordinates

但是,你可以使用以下代码基于图像的宽度和高度获取屏幕的四个角:

请注意,你应该将其替换为你自己的图像

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

-- 左上角:

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

-- 右下角:

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

-- 左下角:

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

-- 右下角:

image.x = math.floor(screenW - screenOffsetW*.5) - image.width*.5
2015-08-05 02:48:17
用户1979583
用户1979583

当然可以。有几种方法可以实现这个。

示例1:

local myImage = display.newImageRect( "homeBg.png", 40, 40)
myImage.anchorX = 0; myImage.anchorY = 0
myImage.x = 10 -- 左偏移
myImage.y = 0  -- 上偏移
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位置通过将 左偏移 加上 图片半宽度 来计算。中心Y位置通过将 上偏移 加上 图片半高度 来计算。

您可以使用任何一种方法来放置对象。如果您是一个 Corona 新手,则以下主题将对您有用,以获取更多关于显示具有特定大小、位置等的对象的知识。

2015-08-05 18:50:16
用户1870706
用户1870706

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

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

您也可以设置这些值。

myObject.x = 100 - 将对象居中于离内容区域左侧100像素处。

默认情况下,Corona SDK基于其中心,默认情况下,除非更改其锚点:

myObject.anchorX = 0
myObject.anchorY = 0

myObject.x = 100
myObject.y = 100

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

2015-08-10 02:52:29