本文将告诉你使用何种工具开发游戏以及使用Flex和Actionscript开发游戏的第一步。
入门
Adobe已经提供了你需要开发游戏的全部——Flash Player和Flex SDK。使用Flex开发游戏有以下一些优势:
- 跨平台兼容性——Flash Player支持所有的主流平台。
- 容易部署——发布一个游戏如同上传一个swf文件一样简单。
- (几乎)不需要安装——仅仅需要你的浏览器安装了Flash Player。
- 免费的工具——只需要免费的Flex SDK和一个文本编辑器即可。
本文的一系列文章将一步一步带领你使用Flex完成一个2D flash游戏开发——一个传统的竖版射击游戏。
首先第一步是下载Flex 3 SDK(http://www.adobe.com/products/flex/flexdownloads/)。这个SDK包含了所有用于编译文中源文件为网页可用swf文件的工具。同时,你也需要一个文本编辑器,我很喜欢Textpad,可以在这里下载到: http://www.textpad.com/。最后你需要下载一个debug版本的flash player: http://www.adobe.com/support/flashplayer/downloads.html。debug版本的flash player可以让你直接打开SWF文件而不需要为SWF创建一个网页(译者注:该说法并不准确。stand-alone版本的flash player都可以直接打开swf,而debug版本的flash player能够在运行时错误时弹出错误信息,release的则不会)。接下来,我们开始准备敲代码吧!
游戏中使用的图片元素来自spritelib库的courtsey,可以在这里下载:http://www.flyingyogi.com/fun/spritelib.html。
创建应用程序
从概念上讲,Flex将一个程序分为两个部分:图形界面以及Actionscript代码。图形界面使用MXML文件,它是一种包含了用户界面元素标签的XML文件,类似于HTML。注意:尽管在MXML文件的mx:Script标签中也可以使用Actionscript代码,但是MXML主要用于定义用户界面。
MXML顶层是mx:Application标签。这里是一个Flex应用的入口,是大多数逻辑开始的地方。
main.mxml源代码
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application
- xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"
- width="600"
- height="400"
- frameRate="100"
- creationComplete="CreationComplete()"
- enterFrame="EnterFrame(event)">
- <mx:Script><![CDATA[
- public function CreationComplete():void
- {
- }
- public function EnterFrame(event:Event):void
- {
- }
- ]]></mx:Script>
- </mx:Application>
我们从定义Application object属性开始。类似HTML的写法,这些属性可以直接标注在mx:Application标签中。
width和height
指定了程序在屏幕中显示的宽高像素
framerate
指定了每秒幀数上限。默认为24,但是由于游戏需要运行得近可能流畅,建议将此值设得高一些。注意:将此值设为100并不能保证程序一直在100fps(或者说接近这个值)下运行。这个值仅仅是一个可能达到的峰值。
creationComplete
当程序创建完成后关联一个方法。我们使用这个方法作为程序入口。
enterFrame
每次屏幕重绘时执行的方法。我们使用这个方法重绘下一幀。
mx:Script标签中提供了一个可以写Actionscript代码的地方。[CDATA[]]标签仅仅表示mx:Script标签中的字符将被认为是字符,而不是XML元素。在mx:Script标签中我们添加creationComplete和enterFrame两个方法。
编译及运行
编译这个程序,需要在命令行窗口中运行mxmlc main.mxml。你可以使用Flash debug player打开生成的swf。
结果是怎样的?就是一个空窗口,什么都还没有。并不是很令人兴奋,但是这仅仅是我们的开始。在这个系列的第二篇中,我们将在屏幕上绘制一些东西。
可以这里试玩我们的游戏:http://flexfighters.sourceforge.net/flexfighters1.html
这里可以下载源代码: https://sourceforge.net/project/ ... p;release_id=631084
原文:http://www.brighthub.com/internet/web-development/articles/11010.aspx