- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的游戏是高清的,我使用了很多高清图像和 Sprite 表,占用了大量的纹理内存。结果是在我的场景加载之前我得到了一个难看的黑屏,持续了几秒钟。所以我想制作一个加载屏幕。其实两个。一个用于我的主菜单,一个用于我的主游戏。我搜索了一整天,但没有找到任何制作加载屏幕的步骤。
我想做的事情:
- 有一个加载屏幕,只有一个文本说“正在加载...”,另一个文本带有一个百分比,用于计算我的下一个屏幕 Assets 已加载多少。
-完成后,我想立即移除加载屏幕并启动主菜单场景或主游戏场景。
我正在为 Android 开发,但也欢迎对 iPhone 提出任何意见。
Storyboard如何知道我的场景是否已加载以及加载百分比是多少?我应该把我的 newImageRects 放在哪里?我找不到一个教程。
最佳答案
在您的 main.lua 中,您应该创建一个函数 loadAlImages(),您将在其中加载所有高清图像和 spritesheet。
local loadingText = display.newText("LOADING ...", 0, 0, 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 创建您的图像、 Sprite ,以及它们何时全部加载创建更改 .isVisible=true。您可以在创建一些图像后放置一些代码来更新百分比文本。
local loadingText = display.newText("LOADING ...", 0, 0, native.systemFont, 24)
myText:setTextColor(255, 255, 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, loadAlImages, 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, 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
关于android - 如何在 Corona SDK 中创建加载屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846848/
我是一名优秀的程序员,十分优秀!