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 ......
1,直接设置属性:
源代码如下:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" xmlns:ri="AAA.test.*" >
<mx:DateChooser dayNames="[日,一,二,三,四,五,六]"
monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月]" />
......
--------------ex3_01_solution -----------------------Using text controls
在嵌套的EmployeeOfTheMonth中
<s:Scroller width="100%">
<!-- Use a RichEditableText control -->
&nbs ......
公司安排开始做服务器,没有接触过这些东西。从零开始学习。
项目是做个聊天系统客户端用flex,服务器用C++,让我先出Demo。
服务器部分参照Windows网络编程一书中的select例子,基本一样,只是把例子中的的单个回应消息改成了群发消息。
虽然我对select模型还不熟悉,但是我知道如果要在一个套接字上发消息就必须设置FD ......
注意:本机必须连接互联网
效果图:
源码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" creationComplete="init()">
<mx:Panel width="620" height="455" layout="absolute" title="天气预报" fontSize="12">
......