Flash游戏简单的表现技巧

时间:2013-11-21 14:07:46

标签: facebook actionscript-3 flash

我正在尝试制作一些简单的Flash游戏,但在我开始向游戏中传入大量字节的数据之前,最好从专业编码员那里寻求智慧,因为我是AS3的新手。

第一个问题是:加速游戏的最佳方式是什么? 由于带宽对我来说有限,加载Flash游戏需要一些时间我试图尽可能快地开始游戏并在游戏过程中加载剩余的材料。我在很多Facebook游戏中看到了这一点。 / p>

第二:如何保持低RAM使用率? 你建议从帧中删除加载的图像/影片剪辑吗?这会降低RAM的使用量吗?如果我再次加载被删除的对象,它是否使用已加载的对象,或者它又开始从源文件夹下载它?

第三:将材料加载到客户端PC的技巧是什么? 我看到许多Facebook游戏第一次需要花费一些时间来加载,但是第二天它加载就像它的数据存储在硬盘上一样。我必须做些什么或者Flash播放器自动完成吗?

第四:有没有办法在播放时将图像/影片剪辑加载到Flash播放器?我的意思是如果游戏级别是电影剪辑而玩家正在玩第一级游戏继续加载下一级,然后根据代码的要求将它们添加到舞台上。

请带上我的经验。

1 个答案:

答案 0 :(得分:2)

这些技巧并不那么简单,但是,所有这一切都是可能的。

  1. 加快游戏速度的“最佳”方式是虚构,无论如何,你至少需要加载主游戏代码才能玩游戏。如果您的等级非常大,是的,您可以在实际加载游戏后加载等级。您也可以用同样的方式加载音乐。为此,您需要一个单独的SWF或一组URL来获取这些,并在游戏完全加载后(没有声音,级别或任何你能够放置的东西)启动异步加载请求(使用{{1此类完成后,您将能够播放一个声音,一个级别或一组声音或级别,具体取决于您如何组织外部资产存储。

    < / LI>
  2. 简短的回答是“减少,重用,回收”,也就是说,您最好将大型资产(如位图(Loader类的实例))存储为单个对象,并使用引用在整个游戏中显示它的大量副本。你最好多次使用一个物体,说一个飞过一次然后过期的子弹,击中一些东西,错过并离开屏幕等等,可以告诉“回到这里,这里是你的新参数”,对象不会浪费。其他技巧也是可能的。

  3. 这是Flash播放器的自动操作,或者更确切地说是浏览器,称为“本地缓存”。如果您从URL请求某些内容,请求将传递给浏览器,浏览器在下载后会存储本地副本以供将来参考。存储仍然有限,如果存储时间过长,副本也可能“过期”,这会使浏览器重新下载URL内容。 Flash播放器使用浏览器的URL回溯,因此本地缓存适用于SWF或其他类型的数据。

  4. 您可以将级别转换为元数据,也就是说,您可以通过任何可能的方式下载一组不同的数据,然后解析该组,通过代码创建所需的MovieClip(或Sprite),填充所有资产在预定的位置进入,并与之一致。元数据可能相当大,可以放在其他地方,可以通过Internet共享并通过URL下载。使用BitmapData类来调用URL并从网络中检索数据,设计一种正确存储元数据的方法,并设计生成器+解析器以在设计游戏时管理这些级别。

  5. 希望这有帮助。