周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(6)

2019-08-31 22:14

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();


周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:证券营销人员合规考试试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: