我的RPG游戏有随机战斗。当玩家进入随机战斗时,我的游戏必须加载该战斗中使用的纹理(动画怪物,动画等)。纹理非常多,而且相当大(战斗非常耗费图形)。
这样的过程消耗大量时间。当它正在加载时,整个屏幕冻结。
游戏地图冻结,等待时间很长 - 我个人觉得很烦人。
我无法预先加载纹理,因为在做了一些数学运算后,我意识到:
我不想使用“加载屏幕”图片,因为它会影响我的游戏设计和概念。我想避免这种做法。
如果我在加载纹理时可以做某种动画,那就太棒了,这导致了我的问题:这可能吗?你问什么样的动画?好吧,怎么样......你还记得最终幻想曾经在显示加载纹理的同时歪曲屏幕吗?这样的事情。但是,扭曲也是一个非常耗时的过程,所以可能只是一个很酷的逐帧动画或其他东西。
在写这篇文章时,我意识到我可以在纹理之间进行小的暂停(有多个纹理),并且在这样的暂停期间,我更新屏幕以表示动画的状态。但是,这种情况不太可能发生,因为每个纹理都是2048x2048,因此动画会以相当滞后(且令人讨厌)的速率刷新。我也希望避免这种情况。
答案 0 :(得分:1)
在类似的绑定中,我选择了
充满乐趣。祝你的游戏好运。
PS。不要相信模拟器的实际响应时间。快速转到设备以确定您是否确实存在性能问题。
PPS。关于第1点,这导致了我的应用程序的显着缩小。
答案 1 :(得分:0)
由于战斗应该是随机的,在战斗发生之前是否有可能为下一场战斗预加载纹理?然后只要装载完成就可以开始战斗。
战斗仍然是随机的,只是在用户意识到即将发生战斗之前已经确定了相遇。
答案 2 :(得分:0)
你可以先加载低分辨率的纹理,然后在后台线程中(我认为是NSOperation)开始加载更大的纹理,并在完成后“交换”它们。
对于动画来说,很多游戏都是在玩家远离时加载小纹理开始的,当它们越来越接近时,高分辨率的纹理将会“淡化”