多屏科罗纳SDK中的点坐标

  • 本文关键字:坐标 SDK 罗纳 coronasdk
  • 更新时间 :
  • 英文 :


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

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

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

如果我错过了文档:(的内容,我问你很抱歉

如果您为项目添加了适当的config.lua,通常 corona 会为您完成所有这些工作。但我以不同的方式这样做,以提高精度和满意度:

在正常情况下:

-- 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

继续编码... :)

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

我也是新来的科罗纳(自 7 月以来(,以前没有移动经验。 它能做什么让我大吃一惊。

科罗纳为您完成所有工作。您定义默认屏幕分辨率(例如 320x480(,并且无论您想从 100 移动到 300 的任何分辨率,它的行为都将相同,因为 Corona 会将所有屏幕分辨率视为 320x480。

最新更新