2022年Flash游戏开发教程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年Flash游戏开发教程 .pdf》由会员分享,可在线阅读,更多相关《2022年Flash游戏开发教程 .pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Flash游戏开发教程:第一节作者:周云 (cloudy1982) 来源 :闪吧闲着也是闲着,开一贴给刚刚踏上FLASH 游戏开发的爱好者们写点东西。FLASH 游戏这东西吧, 总入不了大流。 国内拿 FLASH 做美术方面的应用比较多,而传统的游戏程序员又把 FLASH 当小儿科,不屑搞这个,事实上开发FLASH 游戏也赚不了钱,七七八八的原因加起来,就变成了没多少职业程序员来开发FLASH 游戏,学校也不会培养学生深入学习开发FLASH ,搞这块的人少, 人少交流讨论的也少,正正规规的教材也少,当然优秀作品更少。目前国内大部分的FLASH 游戏开发爱好者没有好教材的指引,自己摸索着就上路了
2、(NND, 我也是这样开始的),开发流程和习惯都是各人一套,很多人因为没有接受正确的学习而走了很多歪路(MD ,好像我也是)于是乎,话题转回来,我就开一贴跟菜鸟们多交流吧游戏制作前的准备突然灵光一闪:老子要做个XX 类型游戏!于是立马打开电脑,打开FLASH ,找图片,建元件,F9 一按,代码蹭蹭的打啊 结果做了一半做不下去了。以上情况常常发生做游戏首先脑子里先要有整个游戏的规划,最好是拿笔画个流程简图,然后再下手。游戏流程的规划是很重要的,我在做一个游戏游戏前,草稿纸上来来回回要打个半天的草稿才开工,我一直认为游戏的规划部分是很难的,如果真等到全部想好了,做起来其实是个很轻松的过程,只是耗时
3、间罢了。理论知识多说没用我们不如来实践下,跟我一起做个简单的游戏吧吃金币游戏 - 策划(我在草稿纸头上写下以下几点)基本描述:天上掉宝物,地下小人物由自己控制,去接宝得分时间限制 30 秒写到这里,顺手画了张草图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 28 页 - - - - - - - - - 画好草图,我继续在草稿纸上又写下详细的几处描述:网页教学网宝物分四种:金币10 、金币 50 、增加时间的宝物、瞬间获得屏幕所有金币的宝物要有两个人能选,一个人物太无聊人
4、物样子不能太傻(这条请忽略)最好来点技能! (晕 - - 不是说简单游戏么 )要能记录我最高得分,有点挑战性!玩到后面最好难度慢慢增加,就让下落物品速度加快吧!即使小游戏,音乐音效也应该有的(占位中 . )写到这里,我又想了想,又画了张草图大概想了下这个小游戏的运行过程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 28 页 - - - - - - - - - 鉴于我这个人脑子不好使,我又一样样统计了下一共有多少东西。见下图:人物宝物时间显示的东西分数显示的东西选择人物还
5、有游戏结束后历史高分的两个提示板背景图片和音乐音效好了,游戏不管大小,我基本动手干活前这些基本的流程都要走。为的是明确整个游戏的过程,然后统计下有多少东西要做,然后一样样做呗。接下来就是搜集要用到的素材。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 28 页 - - - - - - - - - 我找了张背景图,找了两张火影的卡通人物:鸣人和小李。接下去就是先把要用到的动画元件做好。然后就开始考虑程序部分(后面几讲重点)。P.S. 看到这里, 有人要骂了, 小样是不是发个
6、半吊子帖子来骗分啊?为了表明我不是骗子- -. 我今天把这个小东西做了下。因为纯教学讲解用,所以只简单做了两个人物和几个道具,等大家学完后可自行扩充改写。 (为了写这个帖子我今天特意做的,没功劳也有点苦劳啊)版主给点分升级啦很多图我都传不上控制,键盘方向左右操作,上键小李长按是加速,鸣人是跳跃。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 28 页 - - - - - - - - - Flash游戏开发教程:第二节作者:周云 (cloudy1982) 来源 : 闪吧请先
7、阅读上一篇Flash教程: Flash 游戏开发教程:第一节我们讨论下AS 的问题。先不急于动手打代码,我们先要想好这代码怎么个写法,怎么个安排。好,现在小鸟们排好队,一个个来回答,你准备怎么写:10 个小菜鸟 9个会回答:我X 你的傻 X !还能怎么写?F9按了开始写啊 gotoandplay啊,onrelease啊, if 啊 该写啥写啥 咳咳,事实上,也没错。游戏也能这么出来。不过我个人推荐我们该融入点面向对象编程的概念。啥? NONONO 我不是要开始讲复杂的东西我尽量把话往简单了讲我们上讲统计过游戏大致那几个东西是吧?我们现在就把那几个东西独立开来做。用你听过的,就是分几个CLASS
8、 (类)来做。比如,人物,我们就搞个人的CLASS ,宝物,我们就搞个宝物的CLASS ,和传统的F9按开一股脑的打代码不同, CLASS 类文件是另外写的.AS 文件,然后游戏主的.SWF 主文件调用的。来张图:每个 CLASS 都会被绑定在对应的MC 上名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 28 页 - - - - - - - - - 上节统计过的,游戏一共就那么几个MC ,每人把自己对应的小蜜绑好合成一体,在舞台上一合成,就是个完整的能运作的游戏了这样的结
9、构有什么好处?清晰,修改起来方便,知道哪的问题上哪个地方改CLASS 封装性好,不受其它MC 和 CLASS 的影响因为 2的原因,所以适合好几个人一起开发。比如今天你要去谈恋爱,你就拉了隔壁阿三,告诉他要做个怎么样的 CLASS ,名称和哪几个变量以及实现的功能,然后阿三做好,你就拿来可以直接用了。把整个游戏一个个零件拆开做,不容易犯错。看上去比较专业,不懂行的一看,NND ,搞的跟专业开发人员一样,拉风毙了Flash游戏开发教程:第三节作者:周云 (cloudy1982) 来源 : 闪吧请先阅读上一篇Flash教程 :Flash 游戏开发教程:第二节名师资料总结 - - -精品资料欢迎下载
10、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 28 页 - - - - - - - - - 在具体讲解CLASS 构造前,想花点篇幅帮小鸟们理解下CLASS 是什么东东。还是来举个例子,有一个机械战士的MC ,这个 MC 里有机械战士完整的构造,手脚、身体、武器但这个机械战士仍然不能动,因为它只是一具机械,没有大脑程序告诉它该怎么走动,怎么攻击而我们做的 “ 机械战士控制 .as ” 的 CLASS ,绑定在这个战士身上。这个 CLASS 可以看作为一个封闭的黑匣子,里面装载了指导机械人行动的程序,包括怎么移
11、动、怎么攻击、怎么做事情A、怎么做事情B。而这一切都是封闭在黑匣子里的,影响不到外界程序,外接程序也影响不到它。是个独立的东西。这个黑匣子可以装载到任何一个机械战士身上,任何一个机械战士躯体的MC 一旦绑定上这个CLASS ,就能立即行动起来。而且我们可以给这个CLASS 做个外界可以调用的接口。就像黑匣子上装了个可以给外界摁的按钮,你摁一次它就发一次绝招。象上一节说的, CLASS 模式做游戏可以团队开发。我可以让别人帮我做CLASS ,做好我拿来用。我不需要知道他代码怎么写的,我只需要知道这个CLASS 能让这个机械人按照什么规则行动,有什么按钮可以让我摁。封装性的好处由此显示出来了。再闯
12、关游戏里,经常出现比如画面上主角一人对N 个敌人的场面。这些敌人每个都可以绑定同一个CLASS 。就是说写了一个CLASS 分别装载到N 个实例化的MC 中去,而不用每个敌人都各自写一段代码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 28 页 - - - - - - - - - 可能其中两个敌人的生命和攻击力不同。这也很简单,在CLASS 里做一个接收外部传入生命和攻击力两个参数的功能,在敌人MC 绑定 CLASS 后,再传生命和攻击力两个变量的值到MC 里即可。不
13、过要说明, CLASS 并不是只能实例化在MC 上,还可以装在例如Object之类的上面。比如我们很常用的一个FLASH 本来就有的CLASS :SOUND mySound=new Sound() mySound.attachSound(a.mp3) mySound.start(0,1) 这里我们就可以看作Sound类实例化了在mySound的上,而 attachSound和 start都是 Sound类的“ 按钮 ” ,可以让外部操控这个装载了Sound类的 mySound。我们并不知道Sound这个 CLASS 内部代码是如何的,但我们知道按钮可以用来干什么,用的也不是很爽吗?前面说了 C
14、LASS 的基本应用,可能有鸟鸟们要问了,我做个function一样可以用啊,或者在MC 里敲代码,跟你写CLASS 一样。那为什么还要写CLASS 啊?那下面我就来写点CLASS 的另外个重要的特性- “ 继承 ”网页教学网先来个小例子:隔壁阿三写了个类“ 机器人控制 .as ” ,里面写了若干行的代码,包括“ 移动、跳跃 ” 两个个功能。我现在也想写个类“ 超级流氓机器人.as ” ,里面包括 “ 移动、跳跃、攻击” 三个功能。和阿三写的类比较起来,“ 移动、跳跃 ” 两个功能是一样的啦,我想写的类只多了个“ 攻击 ” 功能于是可以偷懒了。在我写的类 “ 超级流氓机器人.as ” 第一行加
15、句简单的代码,就可以把阿三写的类完全COPY 过来。 (代码语法命令后面的课程会讲的)然后我的 “ 超级流氓机器人.as ” 文件里,内容就只有段写“ 攻击的代码 ” 。 网页教学网看到这里,鸟鸟们又要问了, 为什么不直接ctrl+c然后 ctrl+v把阿三写的类复制过来,然后在里面加?别人写的代码,复杂的要死,反正我脑子转不过来,不想去分析别人的东西。分析别人写的代码,痛苦的来日后我再要写个 “ 移动、跳跃、翻滚” 的代码,我不是还要再ctrl+c然后 ctrl+v?多麻烦!假使我用 ctrl+c然后 ctrl+v的方法做了,但突然发现“ 移动 ” 功能里有个错误要改 郁闷吧?你要一个个 .
16、as 文件改了。而如果是继承的方法做的,你只要让阿三把他写的类修改了,你自己写的两个类就一点不需要改动了,因为“ 移动 ” 部分的功能,是直接继承过来的嘛名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 28 页 - - - - - - - - - 说到这里,顺带再提下,FLASH 里我们经常也在用类,只是你感觉不到。做游戏用到最多,同时也是FLASH 里最重要的类,就是“ MovieClip类” !鸟鸟们不知不觉的就一直在用MovieClip类,比如你有没有经常写:mc.
17、onEnterFrame. onEnterFrame就是 MovieClip类里的一个方法,只要是个MC(自动被绑上了MovieClip类) ,就都能用 onEnterFrame。 Webjx.Com 现在回到第一节说的那个天上掉宝地下人物接的游戏。人物有两个:小李和鸣人经过分析,这两个人物基本控制部分是一样的,然后就区别在两个人的各自的特殊技能不一样。于是我们可以这么做:先建个 “ 人物基本控制 .as ” 类建个 “ 小李 .as ” 类,第一行一句代码继承“ 人物基本控制 .as ” 类,然后在正文内容里写上小李特殊技能建个 “ 鸣人 .as ” 类,第一行一句代码继承“ 人物基本控制
18、.as ” 类,然后在正文内容里写上鸣人特殊技能见图:大家可以看到, “ 人物基本控制 .as ” 类也是继承了MovieClip类, 因为要用到MovieClip类里的功能嘛比如人物移动要用到onEnterFrame,MC._x ,MC._y这点功能。类的继承,还可以覆盖继承过来类里的方法。比如 A 类有 move 、jump 、attack三个方法我要写个 B 类,也包括这三个方法, 但是 attack这个方法和A 类的 attack有点不同,而 move 、jump这两个方法则和A 类里的一模一样。于是我们写 B 类,第一行先写句话继承了A 类。然后在正文里把attack方法重写一次,就
19、自动覆盖掉了继承过来的A 类的 attack方法。其它的方法就不用写了,因为直接继承过来了。让我们来换个思路做上面那个例子。直接写了 “ 小李 .as ” 类,然后让 “ 鸣人 .as ” 类继承小李类, 正文里只需要把特殊技能方法重写遍就OK 了。见图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 28 页 - - - - - - - - - 看了那么多概念,小鸟们要想,咋还不教具体怎么写CLASS 呢?别急啊,下节里会简单的教些的。其实我对这种死东西教学还是比较头大
20、的,鸟鸟们也可以自己网上搜下具体CLASS 撰写格式、规矩和变量、方法类型。肯定比我教的要详细。因为我在CLASS 方面也只能算只比小鸟略微胖点点的中鸟啊,哈哈Flash游戏开发教程:第四节作者:周云 (cloudy1982) 来源 :闪吧请先阅读上一篇Flash教程 :Flash 游戏开发教程:第三节本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS ,所以,还是用一节把CLASS 的写法说一下。可能我对CLASS 的写法也不是很正规,有老鸟看了后,最好也能指点一下。先来个
21、CLASS 基本的模式。文件名: Time_control.as class Time_control / 第一部分:声明本CLASS 要用到的变量static var a:Number=2; private var b:Number; private var c:Number=1;public var d:Number; / 第二部分:构造函数function Time_control() init(); / 第三部分:隐式设置-获取法public function set _d(sss:Number):Void d = sss; 名师资料总结 - - -精品资料欢迎下载 - - - - -
22、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 28 页 - - - - - - - - - public function get _d():Number return (d); / 第四部分:私有和公有方法private function init() / 一般写点初始化的内容private function aa() public function bb() 复制代码如果是要继承类,比如继承MovieClip类,第一行就改写成class Time_control extends MovieClip 下面简单解释下各个部分(
23、我最不擅长解释说明这类东西)CLASS 类都是以class 类名称 内容 的形式,而且类名称和文件名要相同。CLASS 的内容分四部分第一部分声明本 CLASS 所用到的变量, 这里要提的是, 和在 SWF 里定义变量不同。 SWF 里你可以用比如a=1这种自动变量形式,而在CLASS 里你必须写明a 的类型是 Number,再定义变量值是1 第二部分是 CLASS 的构造函数, 什么意思呢?就是当CLASS 的实例出现后, 自动执行这个function里的内容,一般都是些初始化的内容。function的名称要和CLASS类的名称一样哦而且这里初始化一般都是用个init()函数,init 函数
24、具体在后面回自己定义。为什么要这样而不直接把初始化内容写在构造函数内呢?因为当继承其它类的时候,构造函数是不能继承的,还得自己再写一次,而init 函数是可以继承的,于是 呵呵,懒人懒办法嘛直接把内容写在构造函数里的话,每次继承就还要重写次,用自定义init 函数的话,就可以偷懒咯第三部分是定义隐式设置 - 获取的function,什么意思呢?上节我们说过,class可以看作一个封闭的盒子,跟外界无关。但有时候我们必须读取或者改变CLASS类内的某个变量。这时候就必须借助隐式设置-获取的function。只有定义后,外界才能读取和设置CLASS内的变量。定义的方法就是比普通function多了
25、get/set这个单词。而且必须要指定返回变量类型,无需返回则用Void 表示。第四部分就是写 function咯这个就不具体说了,function大家老写了可能大家看到, class 里比平时大家写的,多了private和 public ,还有 static这三个词啥意思捏?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 28 页 - - - - - - - - - 简单简单的说下:private与 public定义的变量和方法都能在CLASS 内一样使用,没啥区别而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Flash游戏开发教程 2022 Flash 游戏 开发 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内