Flex游戏篇——游戏开发概述
概述
游戏开发是个很大的课题,该系列只简单讲述如何使用Flex技术平台搭建一个简单的游戏框架,如何设计能优化游戏的CPU占用,内存等,最后制作一个完整的Flex小游戏(提供源码)。
游戏的呈现
方式1:元件方式
这种方式比较适合小型的游戏,游戏元件数量少的情况。当游戏元件数量大时就不合适了:元件会对游戏图形、音频等资源进行拷贝,浪费大量内存;并且元件会独立管理自身的呈现,这个开销是很严重的。该方式的好处是开发比较简单,所以也比较常用,是flash游戏的主要开发方式。
方式2:绘制方式
当游戏精灵数量比较多时方式1显得有点力不从心了,画面太卡了,影响游戏体现。用绘制方式能够很好解决画面呈现的问题,这个方式的特点是,背后有一张游戏场景的图像缓存,当画面需要呈现时,先根据游戏数据把游戏画面先绘制到图像缓存,然后再把图像缓存绘制到游戏场景进行显示,这样做呈现效率高,并且游戏图像等资源不需要被拷贝,节省内存。该方式的缺点是开发复杂,开发难度较大。传统的PC游戏都是采用绘制方式呈现的。
方式3:混合方式
根据上面的介绍和结合Flex技术平台的特点,应该综合使用2种方式。
绘制方式:制作游戏主场景呈现。
元件方式:制作游戏外框,游戏菜单,交互窗体,游戏属性窗体等部分。
另一个明星Silverlight
Silverlight,RIA的另一明星,炒得沸沸扬扬。对于Silverlight,目前比较遗憾的是,它目前只支持元件方式的呈现,不支持画面的直接绘制(可能本人见识有效还没有找到相关资料),这对Silverlight的游戏性能大打折扣。本人做过一个简单的测试,做一个人物行走的游戏精灵(动画一直播放的),在Silverlight场景上放上1000个,画面已经很卡了,人物动作生硬。我在Flex的场景上,用绘制方式,绘出10000个时卡的程度才和Silverlight上的相似。Silverlight还在发展中,据说Silverlight 4对画面渲染作了优化,改善游戏性能。感兴趣的期待下吧。
相关文档:
更多 Flex 4 示例,请到 http://www.slsay.com
现有成熟常用的Flex框架:
Cairngorm (Adobe Open Source) - MVC framework
PureMVC (Open Source) - MVC framework
Mate (Open Source) - tag-based, event-driven
Swiz (Open Source) - Metadata-based Dependency Injection ......
使用js来操作flex
首先在fademo.mxml中声明一个button,并添加一个btnClick方法:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="l ......
package
{
import mx.containers.Panel;
import mx.controls.Button;
import flash.events.Event;
import mx.events.FlexEvent;
import flash.events.MouseEvent;
import mx.controls.Alert;
/**
* This class is used to create a Custom Panel
* with Maximum, Minimum, close
* and also drag p ......
MyEclipse6.5与Flex Builder 3整合安装方法
最近想学习现在最热门的富客户端技术flex,于是下载了Flex Builder 3.0 For Eclipse plugin(FB3_WWEJ_Plugin.exe)准备安装.但是安装后启动Eclipse,找了半天也没找到Flex.而且Flex Builder会把JRE也安装.觉得这样很不舒服. 所以我自己想了一个办法,用MyEclispe6.5与Flex Builder ......
由于Flex只是一种客户端技术其本身并不能直接同数据库交互,在实际的应用开发过程中Flex提供了如URLRequest、HTTPService、RemoteObject、WebService等类以实现同服务器的通讯和数据交互,下面做一些介绍和实例解析:
1、使用URLRequest向服务器发送请求,使用URLLoader接收服务器返回的数据:
& ......