我是 Corona SDK 开发的新手,我正在四处寻找一些文档,看看这个平台是否有助于实现我的目标。
假设我的屏幕中有一个背景图像(例如 320X480),并且我想将一个对象从一个点移动到另一个点。例如,我想将一个对象从 100,100 移动到 300,300。在这种情况下,我的对象遵循一条几乎覆盖屏幕整个宽度的线。但是当我在不同的屏幕分辨率上运行应用程序时会发生什么?例如,在全高清屏幕上,将对象在 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
,其中除法因子是您用来构建应用程序的模拟器/屏幕的宽度
。而在本地_y = display.contentHeight/480
中,划分因子是模拟器/屏幕的高度
。
继续编码......................:)
关于coronasdk - 多屏 CoronaSDK 中的点坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167714/