多个屏幕CoronaSDK中的点坐标

时间:2013-10-03 19:33:33

标签: corona

我是Corona SDK开发的新手,我正在寻找一些文档,看看这个平台是不是可以实现我的目标。

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

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

我很抱歉,如果我遗漏了文档中的内容:(

3 个答案:

答案 0 :(得分: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。在本地_y = display.contentHeight/480中,分割因子是模拟器/屏幕的height

保持编码................. :)。

答案 1 :(得分:0)

它可以为您扩展。我可能不确定它是否在文档中特别提及它。

我也是Corona的新手(自7月起),之前没有移动经验。它让我彻底失去了能力。

答案 2 :(得分:0)

Corona为您完成所有工作。您可以定义默认屏幕分辨率(例如320x480),无论您想要从100移动到300的分辨率,它都会表现得相同,因为电晕会将所有屏幕分辨率视为320x480。