2012-02-16 41 views
0

我正在开发一款使用flash CS5的ipad游戏。当我在闪存或网络浏览器中运行它时,它运行得非常顺利,但是当我将它发布到ipa文件并在我自己的ipad上运行时,它变得非常慢。由于我的游戏有很多阶段和角色,所以符号的数量可能会超过50个。这使得Flash文件超过100MB(但ipa仅为11mb)。所有符号都在第1帧中导出。如何让大型游戏运行更流畅?

因此,我有一些想要了解的问题:

1)如果我使用预加载器并在第2帧中导出符号,我的游戏运行会更顺利吗?当游戏装载足够时,它是一个预加载器吗?还是每个游戏场景都需要?

2)Flash中开发的大型游戏必须遵循的其他技术是否可以在低配置设备中运行? 3)为什么很多其他大型游戏可以运行得如此顺利,尽管它比我的包含更多的角色和背景?

谢谢你很多的帮助^^

回答

1

1)所有的预加载需要做的是显示您的用户的东西是怎么回事,直到比赛开始。它不会影响游戏性能。

2)是:您必须优化每项计算和每项资产以实现小内存占用和快速性能。开始here

3)因为他们花了很多的时间在2个)

在一个侧面说明:这通常是一个好主意,有一个主要的游戏循环,并做所有的计算在你的游戏之前,逻辑单一的渲染步骤,而不是有很多独立的时间轴。在渲染步骤中,您可以排除和/或最大限度地减少不可见或不完全可见物体的所有努力。

+0

thx u ^^你能解释在大型游戏的每个场景中预加载器的工作是什么,因为当游戏开始时所有符号已经加载?这是我得到的最大困惑。 – 2012-02-16 14:16:36

+0

您不会在每个场景中放置预加载器。你只需要一次 - 直到游戏完全加载才显示。说实话:我甚至无法确定单文件预加载器能在iOS上工作。我不能说我到目前为止都没有见过;它通常只是闪屏。 – weltraumpirat 2012-02-16 14:29:27

+0

哦,对不起,我的评论错了:“大”游戏可能会加载视频,地图,纹理,游戏数据。他们通常在可可中完成。 – weltraumpirat 2012-02-16 14:32:44

0

有几件事情要记住:

  • 升级到Flash CS5.5
  • 使用的Adobe Flash 11.0
  • 使用AIR3.1 SDK
  • 发布使用 “GPU”(不是CPU)
  • Object pooling
  • 尝试使用尽可能多的位图,矢量“更重”。
  • 仅在沿x移动物体 '的cacheAsBitmap'/轴和y轴
  • Alpha透明度,吃了你的CPU
  • 我提到Object pooling
  • 将FPS监视器附加到您的应用程序,以便跟踪帧率下降。
+0

非常感谢你!这对我很有帮助:D如果你能想到其他提示,请告诉我,thx ^^ – 2012-02-16 16:23:24

-1

做你自己的忙,并沟闪光。用Objective C/C/C++编写游戏

即使Adobe和微软也放弃了Flash for Mobile设备。我从来没有Flash的仇敌 - 自从FutureSplash以来,我一直是“Flash开发者”,并且在适当的时候仍然使用Flash IDE,但在定位移动设备时不会使用Flash IDE。

+0

Adob​​e放弃闪存?当然,他们放弃了对手机Flash播放器的支持,但他们肯定不排除应用程序/游戏开发。也许网络开发的flash并不像以前那样受欢迎。但闪光(空气)仍然是网络和手机游戏开发的首选。我认为Flash中的手机游戏开发甚至会在未来几年增长。 – basvk 2012-02-16 21:25:07

+0

OP正在讨论为ipad/iphone创建一个游戏作为ipa而不是桌面web使用。不可否认的事实是,Adobe和微软HAVE放弃了Flash作为移动设备的可行选择。不适用于网络(但),但绝对适用于手机。是的,Flash仍然是桌面设备网页游戏的最佳选择,但对于手机游戏来说,除非游戏很简单(即不是OP所谈论的游戏类型),否则它是一个非常糟糕的选择。 – ader 2012-02-17 10:00:07

+0

我不是在说网络,我是在谈论移动。他们绝对不会丢弃移动设备的闪光灯。如果我没有弄错,他们越来越多地关注多平台使用和移动闪存是其中的重要组成部分,因此AIR的更新。 – basvk 2012-02-17 10:33:15