(转载)FLASH游戏入门 三
在具体讲解CLASS构造前,想花点篇幅帮小鸟们理解下CLASS是什么东东。
还是来举个例子,有一个机械战士的MC,这个MC里有机械战士完整的构造,手脚、身体、武器……
但这个机械战士仍然不能动,因为它只是一具机械,没有大脑程序告诉它该怎么走动,怎么攻击……
而我们做的“机械战士控制.as”的CLASS,绑定在这个战士身上。
这个CLASS可以看作为一个封闭的黑匣子,里面装载了指导机械人行动的程序,包括怎么移动、怎么攻击、怎么做事情A、怎么做事情B。
而这一切都是封闭在黑匣子里的,影响不到外界程序,外接程序也影响不到它。是个独立的东西。
这个黑匣子可以装载到任何一个机械战士身上,任何一个机械战士躯体的MC一旦绑定上这个CLASS,就能立即行动起来。
而且我们可以给这个CLASS做个外界可以调用的接口。
就像黑匣子上装了个可以给外界摁的按钮,你摁一次它就发一次绝招。
象上一节说的,CLASS模式做游戏可以团队开发。我可以让别人帮我做CLASS,做好我拿来用。我不需要知道他代码怎么写的,我只需要知道这个CLASS能让这个机械人按照什么规则行动,有什么按钮可以让我摁。
封装性的好处由此显示出来了。
再闯关游戏里,经常出现比如画面上主角一人对N个敌人的场面。这些敌人每个都可以绑定同一个CLASS。就是说写了一个CLASS分别装载到N个实例化的MC中去,而不用每个敌人都各自写一段代码。
可能其中两个敌人的生命和攻击力不同。这也很简单,在CLASS里做一个接收外部传入生命和攻击力两个参数的功能,在敌人MC绑定CLASS后,再传生命和攻击力两个变量的值到MC里即可。
不过要说明,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内部代码是如何的,但我们知道按钮可以用来干什么,用的也不是很爽吗?
前面说了CLASS的基本应用,可能有鸟鸟们要问了,我做个function一样可以用啊,或者在MC里敲代码,跟你写CLASS一样。
那为什么还要写CLASS啊?
那下面我就来写点
相关文档:
用FLASH做RPG,我晕,呵呵,听到这个,很多人恐怕要这么认为。不过FLASH强大的脚本功能和出色的动画函数,给我FLASH做RPG游戏提供了
很好的支持。从今天开始大愚分2节课程给大家讲述做RPG游戏的基础模型。由于大愚也是一个菜鸟,所以错误之处,还请见谅。
由于FLASH还不能支持3D,所以在FLASH的游戏中 ......
前两天在搞Ch375(南京生产的USB解决方案芯片),读写都没有问题,也能完成初始化操作,就是不中断,用示波器测试1引脚(中断引脚)信号会跳变为低电平然后慢慢地返回到高电平,很奇怪!最后才发现是示波器的问题,设置成为侧交流分量造成的。最后检测PCB惊人的发现是PCB上这根线没有连上。
&nbs ......
It's been a while since I've posted any Flash tips. I recon it's
time that changed and I get back to spreading some of that knowledge that's
lofting up there in that big empty space I call a brain. This particular tip
comes from a recent post on the ActionScript.org forums
.
Brackets evaluat ......
http://androider.javaeye.com/blog/268914
1.显示
一个游戏离不开显示,AS3已经为开发者提供了一个比较完整的2D显示引擎了。学习这个部分,学习显示列表,学习DisplayObject和DisplayObjectContainer的区别,学习Shape, Sprite, MovieClip, Bitmap这些基本可显示对象的区别。
2.鼠标输入
&nb ......
最近老是被一些底层的东西困扰着,老大说可能的话自己要做个编译器。嘿嘿,这两小罗那边也在叫嚣着自己做个小编译器,嘿嘿。。再者是最近项目里用到了as的正则表达式,非常恶心,反正还是不能满足目前自己的需求,而听老大说as的正则是用perl那的一套,什么版本我也搞不清了,所以也想看看AVM2的底层代码,底层的东西还是很 ......