在Corona模拟器中,图像显示在左上角。

我刚开始学习lua / Corona,并使用了书籍“使用Corona创建移动游戏”(Silvia Domenech)。书中的第一个项目是制作一个简单的星球防御游戏。为此,我使用了一个多屏应用程序(或在OS X中称为“场景”)。第一个步骤是在Corona中使用组显示图像。

书籍让我在主场景组中输入以下代码:

local image = display.newImage( "images/iphone_767.png")
group:insert( image )

将其添加到(我认为是)正确的组后,代码如下:

-- Called when the scene's view does not exist:
function scene:createScene( event )
    local group = self.view

    -----------------------------------------------------------------------------
local image = display.newImage( "images/iphone_767.png")
group:insert( image )
    --  CREATE display objects and add them to 'group' here.
    --  Example use-case: Restore 'group' from previously saved state.

    -----------------------------------------------------------------------------

end

对于图像,我首先尝试了一个320 x 480的图像。当它在模拟器上呈现时,它位于模拟器的左上角。这是它呈现的截图:http://imgur.com/Kpm0XTd

配置文件设置为320 x 480像素。我真的不知道这是什么原因,因为我没有修改任何我描述之外的内容。有任何想法吗?

点赞
用户456735
用户456735

将令牌的 x 和 y 值设为屏幕中央(假设你想居中显示):

image.x = display.contentWidth/2
image.y = display.contentHeight/2

谢谢 Anand

2013-12-06 03:49:41
用户825481
用户825481

我个人喜欢将变量设置为display.contentWidthdisplay.contentHeight

_W = display.contentWidth
_H = display.contentHeight
image.x = _W/2
image.y = _H/2

你也可以这样格式化它:

image.x = _W*.5
image.y = _W*.5
2013-12-07 01:04:58
用户1870706
用户1870706

Corona SDK 最近开始使用一个新的图形引擎,它会影响物体的位置。display.newImage()之前在0,0处绘制左上角,但现在在0,0处绘制中心。因此,最好总是明确设置图像的.x和.y属性以显示它的位置。

2013-12-09 01:36:17
用户1406702
用户1406702

现在似乎存在一种简化的方法:

image.x = display.contentCenterX
image.y = display.contentCenterY

或者单行代码:

local image = display.newImage('images/iphone_767.png', display.contentCenterX, display.contentCenterY)

但现在更常规的模式似乎是首先创建一个居中的组:

-- 创建居中的组
local centeredGroup = display.newGroup()
centeredGroup.x = display.contentCenterX
centeredGroup.y = display.contentCenterY

-- 添加背景
local image = display.newImage(centeredGroup, 'images/iphone_767.png', display.contentCenterX, display.contentCenterY)
2014-03-08 17:31:36