微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何在Corona SDK中创建加载屏幕?

我的游戏是高清,我使用了很多高清图像和精灵表,占用了大量的纹理内存.结果是,在我的场景加载之前,我得到了一个丑陋的黑色屏幕,持续了几秒钟.所以我想制作一个加载屏幕.其实两个.一个用于我的主菜单,一个用于我的主游戏.我整天搜索了很多,但我没有找到任何制作加载屏幕的步骤.

我想做的事:

– 有一个加载屏幕,只有一个文本说“加载…”和另一个文本,其中百分比计算我的下一个屏幕资产加载了多少.

– 我完成后,我想删除我的加载屏幕,并开始我的主菜单场景,或我的主要游戏场景,没有延迟.

我正在为Android开发,但欢迎任何关于iPhone的评论.

故事板如何知道我的场景跟踪是否加载以及百分比是多少?我应该把我的newImageRects放在哪里?我找不到一个教程.

解决方法

在你的main.lua中,你应该创建一个函数loadalimages(),你将在其中加载所有的高清图像和spritesheets.
local loadingText = display.newText("LOADING ...",native.systemFont,24)
myText:setTextColor(255,255,255)

local function loadalimages()
    --create all your images here.

    --remove LOADING text
end

--if you still see black screen at the start try to increase delay > 500 ms  
timer.performWithDelay( 500,loadalimages,1 )

现在,如果您想显示和更新另一个文本,其中包含计算下一个屏幕资源加载量的百分比,您应该创建图像,精灵为.isVisible = false,当它们全部创建时更改.isVisible = true.
您可以在创建一些图像后添加一些更新文本百分比的代码.

local loadingText = display.newText("LOADING ...",255)

local function loadalimages()
    --create some images here.
    --update text's percentage to 20%
    --create some images here.
    --update text's percentage to 50%
    --create some sprites here.
    --update text's percentage to 90%
    --change **.isVisible=true** for all your created files but **.alpha=0**
    --update text's percentage to 100%
    --remove LOADING text
    --transition .alpha of all images to 1
end

timer.performWithDelay( 500,1 )

我认为您可以将所有图像文件放在一个显示组中,并在此组中设置.isVisible = false.这将为您节省一些代码行. .alpha = 0也是如此

有很多方法.您可以声明变量然后在loadalimages()函数中创建它们,或者您可以将它们全部放在表中并使用该表来获取所需的图像.
一个例子:

local image

local function loadalimages()
    --create some images here.

    image = display.newImageRect( "image.png",100,100 )
    image:setReferencePoint( display.CenterReferencePoint )
    image.x = display.contentCenterX
    image.y = display.contentCenterY

    --create some sprites here.
end

表格示例:

local imagesTable = { }

local function loadalimages()
    --create some images here.

    local image = display.newImageRect( "image.png",100 )
    image:setReferencePoint( display.CenterReferencePoint )
    image.x = display.contentCenterX
    image.y = display.contentCenterY
    imagesTable.image = image

    --create some sprites here.
end

更多信息:
http://lua-users.org/wiki/ScopeTutorial
http://www.coronalabs.com/blog/2011/06/21/understanding-lua-tables-in-corona-sdk/
http://lua-users.org/wiki/TablesTutorial

原文地址:https://www.jb51.cc/android/308665.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐