如何开发高性能的Flash游戏?

时间:2011-04-15 11:26:05

标签: actionscript-3

1.如何加载图片资源?在这种情况下,我们应该使用“[嵌入]”来插入资源? 2.哪种技术可以提高游戏flash游戏开发的性能?

3 个答案:

答案 0 :(得分:1)

使用加载器访问外部图像,如下所示:

private function init():void
{
    loader = new Loader();  
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaderCompleteEvent);
    loader.load(new UrlRequest("someImage.jpg"));
    addChild(loader);
}

private function handleLoaderCompleteEvent():void
{
    //Do something.
}

关于技术:如果你想在你的游戏中使用一些漂亮的动画,请使用TweenLite库,这对于动画非常棒。如果你想使用3D,请使用Papervision3D或away3D,但这需要一些学习和了解库,因为TweenLite易于访问和使用。

答案 1 :(得分:0)

使用位图做更多事情,在某些情况下,使用Alchemy从C代码编译计算密集型例程可能会有所帮助(尤其是碰撞检测和物理问题)。

最重要的是,您将受益于使用Flash Builder(或第三方)分析器以及其他形式的基准测试来确定您需要改进的内容。没有什么可以替代了解您的平台的局限性,并从经验中获得一个很好的包袱。

答案 2 :(得分:0)

我发现这一切都归结为最终渲染..你使用的矢量图形越多,它就越慢。如果我移动到精灵表,或者创建一个使用单个MovieClip作为多个BitmapData对象的资源来绘制的类,这对我来说是一个荒谬的区别。

我的意思是:假设你有一个游戏敌人的电影剪辑,如船或什么的。首先,在一个易于访问的地方创建一个MovieClip实例。从这里开始,所有Ship对象都可以扩展Bitmap。另一个功能可能是渲染控制器,它应用旋转并设置您的船舶动画片段的帧。从这里开始,Ship可以像这样工作:

public class Ship extends Bitmap
{
    /**
     * Constructor
     */
    public function Ship()
    {
        /**
         * 1. specify the source movieclip thats been set up in RenderClassThing
         * 2. set the rotation to 45 degrees
         * 3. set frame of source movieclip to 4
         */
        RenderClassThing.prepare(shipMC, 45, 4);

        // applies bitmap
        bitmapData = RenderClassThing.getBitmapGraphics(shipMc);
    }
}

如果使用大量矢量图形,这将产生巨大的差异。