2

我是 Corona SDK 开发的新手,我正在四处寻找一些文档,看看这个平台是否能达到我的目标。

假设我的屏幕中有一个背景图像(例如 320X480),我想将一个对象从一个点移动到另一个点。例如,我想将一个对象从 100,100 移动到 300,300。在这种情况下,我的对象沿着一条几乎覆盖了我的屏幕整个宽度的线。但是当我在不同的屏幕分辨率上运行应用程序时会发生什么?例如在全高清屏幕上,将一个对象在 X 轴上从 100 移动到 300,它只是移动了一点。

我从 Corona 文档中看到的是,通过提供不同的图像分辨率来支持多屏幕。但是当我必须通过屏幕坐标时会发生什么?我是否必须在运行时检查屏幕分辨率并执行所有数学运算来缩放我的点坐标?或者还有什么我想念的吗?

如果我错过了文档中的某些内容,我向您道歉 :(

4

3 回答 3

2

如果您在项目中添加了适当的内容,通常电晕会为您完成所有这些工作config.lua。但我以不同的方式来做这件事,以获得更高的精确度和满足感:

在正常情况下:

-- Your object at point (100,100)
local myObject = display.newRect(0,0,50,50)
myObject.x = 100
myObject.y = 100

-- sample transition 
transition.to(myObject,{time=1000,x=300,y=300})

我在做什么:

-- Create a scale factor for X and Y
local _x = display.contentWidth/320
local _y = display.contentHeight/480

-- Multiply X values with '_x' and Y values with '_y', as below:
local myObject = display.newRect(0,0,50*_x,50*_y)
myObject.x = 100*_x
myObject.y = 100*_y

transition.to(myObject,{time=1000,x=300*_x,y=300*_y})

笔记:

  • 在尝试上述代码时,您必须为 iPhone 模拟器开发代码。因此,我获得了local _x = display.contentWidth/320,其中除法因子是width您用于构建应用程序的模拟器/屏幕的 。在 local_y = display.contentHeight/480中,除法因子是height模拟器/屏幕的。

继续编码........ :)

于 2013-10-04T05:21:11.603 回答
0

它为您扩展了这一切。我不确定它是否在文档中特别提到它,可能。

我也是 Corona 的新手(自 7 月以来),之前没有任何移动经验。它的功能让我大吃一惊。

于 2013-10-03T19:47:42.013 回答
0

Corona 为您完成所有工作。您定义您的默认屏幕分辨率(例如 320x480),并且在您想要从 100 移动到 300 的任何分辨率下,它将表现相同,因为 corona 会将所有屏幕分辨率视为 320x480。

于 2013-10-03T21:18:47.177 回答