return(time) }
//=========================================== private function TimeGo(){ t++
if(t0==0) time-- if(time==0) {
delete onEnterFrame _root.game_c.endGame() }
}//倒计时代码,当时间=0,通知游戏控制类作出endGame()的行为。 public function Go(){ t=1
time=30 onEnterFrame=TimeGo }//初始化,并开始倒计时
}
有了前两节的基础,这节显的很简单??(感觉好像应该先教这节啊??- -??是不是难度顺序颠倒了??)
下节会讲最后的,也是很重要的类-游戏控制类,尽请期待~!
LESSON 10 范例接宝游戏中游戏控制类的CLASS讲解
终于讲到这节了,累死,也饿死,为了明年年初要拍婚纱,我每天中午就吃个苹果减肥,然后靠苹果的能量再给鸟鸟们写教程??
今天算是暴走式的更新速度了,从第7节写到了第10节,胃软导致了手软,手软导致了脚软,较软导致了XX也软??
版主看到,体恤下吧,加点分,我好早日升中级会员??(咳咳)
本节讲的是最后一个类:游戏控制类
我自己每个游戏都会在舞台上有这个MC帮我看场子,指挥调度手下的兄弟,提供各类凶器,把握整个进程??
这个游戏的游戏控制类:Game_control.as 先点开FLA里的MC,看看它的构造。
有两个框,一个是选择人物的,一个是显示最高得分的。 我用它们两的visible属性控制它们可见和不可见。
Game_control.as把握着整个游戏的进程,提供了一些方法。
先看它怎么控制游戏的:
1.先初始化游戏参数,然后让选人框可见,让玩家选人。
2.玩家选好人,它就把人物attach到舞台上,同时通知‘时间控制类’这个小弟你可以30秒倒计时了,又同时开始在天上撒金币和宝物。
3.‘时间控制类’小弟一看时间到0了,马上又来通知大哥,时间到0了
4.大哥收到风声后,停止撒金币,让画面上已有的金币宝物全部消失,同时一番比较后显示出你的历史最高分,同时提供你个重新游戏的按钮 5.按重新游戏,大哥就回到第1步??
(好像所有小弟里,只有分数显示自管自工作,没有被大哥叫到)
它包含了一些方法,供小弟和自己用: 1.初始化数据:init()
2.根据玩家选择,在舞台上attach人物:chose(n:Number) 3.天上播撒金币和宝物:onGame() 4.屏幕上宝物消失:jin_disappear()
5.结束游戏,比较得分和最高分,让显示框显示最高分:endGame()
对照着我们来看下代码
复制内容到剪贴板
代码: class game.Game_control extends MovieClip { private var t:Number = 1; private var game_begin:MovieClip private var game_end:MovieClip private var depth:Number private var topScore:Number=0 public var time:Number; //构造函数
function Game_control() { init(); }
//隐式设置方法
public function set _time(ttt:Number):Void { }
//公-私有方法
public function init() { time=35
_root.score = 0;
_root.createEmptyMovieClip(\ _root.createEmptyMovieClip(\ _root.createEmptyMovieClip(\ //初始化里建立空MC,同时也就是把以前的MC删除覆盖 game_begin._visible=true game_end._visible=false _root.music_control.bg(1) }
public function chose(n:Number) { game_begin._visible=false
_root.pl.attachMovie(\ _root.time_c.Go()//时间控制小弟~号开始倒计时啦~ _root.music_control.bg(2) onEnterFrame = onGame; }
private function onGame() { t++;
if (t%time == 0) {
depth=_root.item.getNextHighestDepth() if (random(8) == 0) { var
a:MovieClip=_root.item.attachMovie(\\ }
else if (random(5) == 0) {
var a:MovieClip=_root.item.attachMovie(\\
a.score=50 } else {
_root.item.attachMovie(\depth++); }
time = 20+random(30);
}//这段自己仔细看下,就明白怎么随机时间间隔里播撒出随即类型的宝物了 }
private function jin_disappear() { for(var i:String in _root.item){ _root.item[i]._speed=0
_root.item[i]._bspeed()//这个方法Jin.as里写过的,还记得吗?哈哈
_root.item[i]._alpha-=5 _root.item[i]._xscale+=2 _root.item[i]._yscale+=2 if(_root.item[i]._alpha<0) {
_root.item[i].removeMovieClip() delete onEnterFrame }
}//大小和alpha同时变化直到宝物消失~ }
public function endGame(){ onEnterFrame=jin_disappear game_end._visible=true if(_root.score>topScore) { topScore=_root.score game_end.sc=topScore
}//判断和记录历时最高分,同时显示最高分框显示~ }
}
事实上在人物选择框,两个人物是按钮,用来调用‘游戏控制’类里的chose(n:Number)方法。
当chose(n:Number)被调用时,后面一连串的进程就都自动展开了??
今天一下子讲的太多了,能消化掉吗?
游戏主体也就这样了。剩下点小东西,比如声音控制,下节课讲。
LESSON 11 声音控制&我对FLASH创作游戏的看法
【响应正版号召,再次宣传】
本文作者:周云(老鸟可以直接叫小弟我小周,粉丝必须称呼周哥,讨教的嫩鸟就叫声周老师吧,满足下我的欲望,啊哈哈哈~) 联系方式:danyun1982@163.com 首发于蓝色经典论坛
欢迎转载呀~(不欢迎又咋样??要转照样转??)
转载必须保留我的作者名称和联系方法,不然转载者生个儿子+String(a) c=[\
b=[\长不高\,\没P\是女孩\a=b[random(b.length)]+\呀~!\
我喝了半瓶子水~幻想自己刚吃了个鸡腿~死撑着把这最后节不缩水的写完~ 让我们来看看声音控制部分吧~
声音控制,我个人不习惯用类来控制。
我一直是在游戏第一帧先用Sound类把库里的声音关联起来 然后做个Object,在里面定义function来控制声音的
当然你也可以写个类来控制,这随你的,用痰盂还是马桶,我们谁也不能强求谁,对吧?
把第一帧的声音控制代码拿出来~~~
复制内容到剪贴板
代码: /////////---声音控制---///////////// music_bg1 = new Sound(); music_bg1.attachSound(\music_bg2 = new Sound(); music_bg2.attachSound(\music_bg_jin = new Sound();
music_bg_jin.attachSound(\music_bg_bao = new Sound();