Flixel引擎学习笔记
[转]http://blog.forfl.com/2013/01/the-flixel-engine-learning-notes/
蛮欣赏Flixel的哲学,学习并做下笔记,目标:基于Flixel组建团队的快速开发游戏框架,达到高复用模块、拥有方便移植的单独的渲染对象、模块独立,方便合并的目的
Flixel引擎介绍
官网地址:http://flixel.org
Flixel是一个基于MIT开源协议的AS3游戏位图引擎
Flixel的设计是主要封装了Flash中和游戏相关的大部分内容,重新提供了一套Flixel接口,方便程序的开发,提高了代码的统一,提高了代码的可读性。此外还提供了动画、运动、2D碰撞、tilemap、场景管理等扩展功能,很适合2D横板类游戏的开发
Flixel是非常灵活的,继承关系不复杂,接口清晰简单,它的一个类专注提供一块内容,本身的功能类数量并不太多,学习起来很轻松,所以也基本上不需要手册,官网上也只是提供了一些How To来做参考。
Flixel提倡开源,提倡使用开源工具,偏向小规模项目的开发,在官网上也介绍了许多开源工具,包括美术用的像素画工具和Flixel的tilemap制作工具
最新版在Github上,github地址:http://www.github.com/AdamAtomic/flixel/
集成了不错的有趣的小功能:譬如 :0 静音 – 减少音量 +增加音量
Flixel优点
游戏管理
预加载器:Logo闪烁效果,支持显示时间控制
站点锁定:可限定只在一个网站部署
游戏循环和状态管理
方便的本地保存
分数和关卡
屏幕失焦管理:暂停游戏和声音,降帧,鼠键处理,暗屏并显示logo和播放图标
帧优化:游戏帧频和Flash帧频分开,游戏进度不因Flash降帧而减缓
计时器管理:和游戏循环整合、统一的管理器
针对移动平台的调整
记录和回放
调试器
物体
基本:存在、活着、活动、可视、健康值、受伤、被杀、复活、闪烁(Flicker)
运动:位置、宽高、角度、质量、弹力;移动和旋转的速度、加速度、阻力
碰撞:重叠检测、分离反应、接触检测、方向可指定、四叉树算法
视图:设置图形源、设置预旋转图形源(高性能)、几何相关、屏幕内判断、朝向、整体透明度颜色设置、填色、颜色替换、像素级重叠检测、盖章(Stamp)、位图优化
动画:可有多个动画序列,添加、播放、回调、帧操作、随机帧
物体分组:添加、移除、替换、回收、排序、查询、全员操作
粒子系统:粒子本身也是物体,寿命、发射频率、爆炸效果、旋转、弹力、重力、掉地上后的摩擦力、开关
路径跟随
地图
加载CSV数据
数组、位图到CSV的转化
砖块操作
两种自动铺砖算法,分别适合薄墙和厚墙
重叠检测
路径寻找
摄像机
可设置多个摄像机
基本:缩放、角度、透明度、颜色、反锯齿、填充
运动:聚焦、跟随、死区(deadzone,不跟随区)、边界
效果:闪光(flash)、渐隐(fade)、震动(shake)
路径
地图的路径寻找:有两种算法
物体的路径跟随:可以设置速度、模式、自动旋转
用户界面
文本:文本、尺寸、颜色、字体、对齐、阴影
按钮:文本、状态、图片、回调、音效
以上组件也是物体
鼠标键盘
键盘按键状态
鼠标左键状态、滚轮滚动值、鼠标位置
记录和回放以上状态
显示和隐藏、自定义鼠标图形
声音
加载、播放、暂停、继续、停止、循环、销毁、音量
淡入淡出效果
渐近效果:自动根据离某物体的距离调节音量和平衡
支持嵌入和流音频
背景音乐
按钮音效
快捷键调节音量和静音
音量调节视图
音量信息保存
Flixel缺点
从学习成本,学习难度,对比其他开源引擎方面描述Flixel的缺点