到这个月20号,踏入游戏行业已经6年整。02年,从学校出来就来到了广州网易,也不曾想到一呆会呆这么久。也不曾想到,6年之后的今天有机会离开网易这样舒适的环境去外面闯荡。

确实人生如梦,弹指之间,很多事情就会发生转变……就像2012……

现在回想起来,虽然从高中时代便有了想要自己去开发一款成功游戏的念头,但是就像很多热血漫中的主角一样,一开始仅有热情而无技术(程序/策划/美术)。然后2、3年后发现自己技术一般般,想要做事情,但是有心无力(很多技术之外的事情困扰)。于是就这样混下去了。

如果我也一直这样下去了,就和很多人一样,为了生活而生活。其实什么都无所谓,很多人也都是这样,“混完这辈子就行了”,也没什么不好。反正饿不死,反正社会上还是有很多人在生存线上挣扎着的人们,至少不会潦倒,即使潦倒了也还可以回家做个家里蹲。

“反正无聊不如做点什么吧”

“要做就做点有意义的大事吧”

就像身体里流淌着法师的血液,就像脑袋里面装满了角斗士的信念……

游戏这件事情也许已经和我的人生混合在了一起了。

“玩游戏 做游戏”

What is Flixel?

Flixel是一个完全开源的Flash游戏的开发框架,Flixel的哲学我挺欣赏的,它封装了Flash中和游戏相关的大部分内容,重新提供了一套Flixel接口,方便程序的开发,提高了代码的统一,提高了代码的可读性。此外还提供了动画、运动、2D碰撞、tilemap、场景管理等扩展功能,最适合2D横板动作类游戏的开发。

Flixel是非常灵活的,继承关系不复杂,接口清晰简单。它的一个类专注提供一块内容(这点我觉得Flixel的粒度把握的非常不错,并不是像很多库一样划分的极细,导致继承关系太过复杂),本身的功能类数量并不太多,学习起来很轻松。所以也基本上不需要手册,官网上也只是提供了一些How To来做参考。

Flixel提倡开源,提倡使用开源工具,偏向小规模项目的开发。在官网上也介绍了许多开源工具,包括美术用的像素画工具和Flixel的tilemap制作工具。

如何上手?

最快能让你上手Flixel的地方就是它的官网(<a href="http://flixel.org/">http://flixel.org/</a>),可惜是英文的。不过我接下来会对开发框架的搭建做一个流程介绍,可能和官网的教程会有一些不同。

首先,安装开发用的IDE,这里我推荐下FlexBuilder3,和刚出的4相比会更加成熟、小巧。另外它也支持FlashDeveloper、FlashBuilder、sdk等方式。

创建新的ActionScript工程,别忘记取一个好听的名字。

下载Flixel的压缩包,解压后把里面的org放到工程的src目录中,这样你的代码可以直接import它。

我新建的工程叫做TestGame,很土的名字吧。把作为入口的那个TestGame.as的内容改成下面这样:

这里的TestGame继承了FlxGame,是游戏的入口,它定义了输出的Flash的长和宽,以及一个作为初始状态的TestState。

TestState是最初的游戏场景,我这里按照习俗给出了一个“Hello World”的例子。代码如下:

我暂时不会解释代码的具体意义,让我们先运行一下看看吧。

OMG,发现了问题:

原因写在双击之后跳转的代码注释里面:

大概因为开发者已经换到了Flex 4.X下的缘故吧,我们3.X众只需要把下面两段代码交换一下,让适合3.X的代码生效即可。

基本的组织结构

运行中的Flixel框架的组织结构大体上如上图所示。游戏的入口是一个FlxGame类(需要由你来继承),此外需要多个FlxState类(也由你来继承)。你需要在创建FlxGame类的时候指定一个State作为一开始显示的默认State。之后你可以调用“FlxG.state = FlxState1”,来切换不同的State。

每个State就相当于是一个不同的游戏场景,一开始场景自然是空的,你需要创建多个FlxObject,并将它add()到State中,这样你的场景才会丰富起来。

FlxObject一般来说是各种各样的可视化对象,比如FlxButton、FlxSprite、FlxText等。他们都可以作为控件来响应鼠标消息。另外还有一些逻辑相关的不可视对象。

来试验下效果

我加入了一行嵌入图片的代码,并将这个图片用在了TestState中,并将它的位置放在了原来的”Hello,World!”的下面一点:

下面是TestState的显示效果:

看起来效果不错。

Tilemap & Flan

Tilemap是一个术语,它指的是一种像砖块一样把地形平铺在场景中的地图技术。非常多的早期游戏中使用了这个技术,即使是现在,小制作的2维RPG、Flash的横板闯关等许多的场合,任然广泛的使用着这种技术。

Flan是制作Tilemap的工具之一,它输出的格式非常简单,并且可以被Flixel框架直接使用(因为Flan版本和Flixel当前版本不一致的原因,需要修改小部分代码)。Flan的官网在(http://www.tbam.com.ar/utility--flan.php),这里(http://flashgamedojo.com/wiki/index.php?title=Flan)是Flixel官网对Flan的介绍,貌似评价挺不错。

Flan能将制作好的地图导出,再由Flixel来加载。Flan导出一个as脚本格式的地图类和一个记录地图数组的文本,如果你的地图有许多层,那么将会有多个文本文件,这并不太方便管理。另外那个地图类文件需要稍作修改才能用。

我们先来制作一张地图,里面象征性的加入了几个“地形”:

然后在导出页里面选择导出的文件的目录,我选择了代码的根目录,如果你需要换到其他目录,记得填写Package里面的内容。如果不知道怎么填写,请参考Action Script的包结构相关章节。

点击了“Export All”导出后,再点击下面的“Generate code for FlxState and copy to clipboard”按钮。这时你可以切换到你的FlexBuilder,把代码拷贝到之前的TestState中。不过你需要调整下复制的代码的内容,根据注释中的提示放在合适的位置。

OK?不,肯定已经出错了,因为这个版本的Flan对应的Flixel是比较早的,所以你需要手工改错。记得之前我告诉你的压缩包中的doc目录下面的文档么?,把一些创建类的参数修改,并且修改下import错误。大概一会儿之后你就可以修改完的,我也就不一一的罗嗦了。

让我们运行一下:

大功告成!

Flash游戏开发框架Flixel介绍相关推荐

  1. 快速创建精彩的Flash游戏(一) Flash2D游戏引擎简介

    原文链接:http://xiazhihui321.blog.163.com/blog/static/81328893201141851158857/ Adobe Flash自诞生之日就与游戏结下不解之 ...

  2. 开源Flash游戏引擎PushButton Engine

    介绍开源Flash游戏引擎PushButton Engine  最近,一个开源 的Flash游戏引擎PushButton引擎发布了,与以往的游戏引擎不同的是,这是一个模块化的游戏引擎,也就是说它提供了 ...

  3. 开源Flash游戏引擎

    FFlimation Fflimation 引擎是as3的二维(类似暗黑破坏神)引擎.主要用于游戏开发.这个项目的主要目的是提供一个稳定的开发平台,这样游戏设计师就可以忘记游戏渲染引擎把精力集中在游戏 ...

  4. Panda3D 是一个用于 Python 和 C++ 程序的 3D 渲染和游戏开发框架。

    Panda3D 是一个用于 Python 和 C++ 程序的 3D 渲染和游戏开发框架. Panda3D 是一个用 C++ 编写的强大的 3D 引擎,具有一套完整的 Python 绑定.与其他引擎不同 ...

  5. flash游戏教程集锦~~

    http://www.flash8.net/bbs/dispbbs.asp?boardID=38&ID=183016&page=1 flash游戏教程集锦~~制作游戏有疑惑的先来这里看 ...

  6. node python做游戏服务哪个适合做服务端_当前的几种开源游戏服务端介绍

    当前的几种开源游戏服务端介绍 pomelo Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复 ...

  7. 从网页下载4399小游戏 下载flash游戏

    flash游戏,以swf为结尾. 在网页能力还不是很强大的时候,flash能很好的兼容在网页端,为制作游戏增添一份力量. 本文介绍如何从网页下载flash游戏: F12开发者界面,一步步定位到游戏界面 ...

  8. 去后厂村开游戏厅吧!基于PP-TinyPose的简易体感游戏开发框架

    ‍ 项目简介 近年来,随着虚拟现实技术和计算机图形学技术的迅猛发展,越来越多的体感游戏在市场上出现并受到欢迎.要让体感游戏具备良好的表现,就需要使用大量的传感器,甚至需要使用高性能的计算机和图形处理器 ...

  9. LibGDX_1.1: LibGDX 跨平台游戏开发框架简介

    本文链接: http://blog.csdn.net/xietansheng/article/details/50185793 LibGDX 基础教程(总目录) 1. LibGDX简介 LibGDX ...

  10. libGDX跨平台游戏开发框架入门:开发一个小游戏之加载资源

    目录 前言 加载资源 libGDX资源目录说明 配置各个平台启动器 desktop模块启动器设置 Android模块启动器设置 加速度计和指南针 html模块启动器设置 编写加载资产代码 1. 加载图 ...

最新文章

  1. saiku执行过程代码跟踪
  2. 我可以从iOS DeviceSupport中删除数据吗?
  3. UVa LA 3882 - And Then There Was One 递推,动态规划 难度: 2
  4. Web认证及API的 使用TOKEN的一些思考
  5. Android TV开发焦点动作控制小技巧
  6. Linux - chmod
  7. ubuntu18.10安装octave
  8. CodeForces - 796D Police Stations bfs
  9. python - 内置函数
  10. 04737 c++ 自学考试2019版 第六章课后练习 程序设计题 1
  11. mysql 删除版本信息_mysql5.5版本删除大表
  12. Qt 使用vs调试的方法
  13. 补码转源码 吐血总结
  14. java 转换字符编码_Java 正确的做字符串编码转换
  15. 我国无线2.4g及5g信道-个人笔记
  16. 计算机ps计划,ps教学计划
  17. 体育测试成绩用什么软件制表,使用Word制作成绩表表格的方法
  18. 打分功能,车牌区域划分
  19. 风影总结NHibernate1
  20. js 获取计算机mac地址,JS获取计算机mac地址以及IP的实现方法

热门文章

  1. Windows下Mysql完全卸载教程
  2. java人民币金额大写_Java人民币金额数字转换成大写
  3. 计算机不打印怎么回事,打印机无法打印怎么办解决方案
  4. 【洛谷试炼场】普及练习场——字符串处理
  5. 安卓HTML5屏蔽弹窗代码,手机弹窗太烦人,5招教你屏蔽各种弹窗通知!
  6. 动态规划(一)——矩阵连乘
  7. 基于matlab的模糊PID控制仿真
  8. nwjs macOS打包成dmg
  9. 单代号网络图计算例题_如何把横道图转化成双代号网络图?
  10. webpack 图像压缩_基于webpack的图片压缩最佳方案