 |
教程: Flash教程-Flash游戏实例教程-《历史飞行棋》游戏设计 |
 |
|
|
| 教程: Flash教程-Flash游戏实例教程-《历史飞行棋》游戏设计 |
|
|
|
|
游戏界面:
 游戏规则: 1、玩家通过掷筛子掷出的点数大小来控制主角在地图中前进的步数,当玩家到达终点则游戏结束。 2、你将与两家聪明的电脑玩家同场竞技。(ai设定) 3、玩家点击右下角两个筛子掷筛,停止后可选择任意一个筛子的大小值作为角色前进的步数。 4、电脑和玩家轮流掷筛,轮到任意一方时将会有闪烁提示。并能够体现电脑的操作过程。 5、地图内设各种事件格,如:前进,后退,暂停等,将对棋子前进造成2次变化。(不会存在2次以上的变化) 6、如果两个棋子走到同1格停止,则后来的将会把原来的弹回出发点。 7、地图中设定练习格,当玩家的棋子走到该格子时将要完成练习题方能继续,该格的练习同时也消失,做对给10分,错误扣10分。(玩家的基础分为100分,同一次格内的练习只能做1次) 游戏分数: 玩家试题得分=(100 正确试题个数*10-错误试题个数*10) 玩家时间得分=int(100/到达终点分钟数) 最终分数=(玩家试题得分 玩家时间得分)*名次系数 第1名名次系数:1.5 第2名名次系数:1.2 第3名名次系数:1.0 游戏开发模块: 1、角色与筛子控制模块程序 2、电脑AI模块 3、地图生成模块 4、试题练习模块 5、评价模块 游戏主要代码: 这里我固定了c1表示玩家,c2,c3表示电脑 1.建立地图格子,为避免出现死循环,按照一定的顺序和规则进行.
function createmap() { //初始化格子信息 for (var i = 1; i<=titleMaxnum; i ) { eval("t" i).types = 1; } //生成前进和后退格,从第4格开始,每隔4格随机产生一个 for (var i = 4; i<=titleMaxnum; i = 4) { var trnd = int(Math.random()*5) 1; eval("t" i).gotoAndStop(trnd); eval("t" i).types = trnd; } //生成暂停格 trace(getEmptyTitle().length); var pausenum = 8; var t_array = getEmptyTitle(); var pause_d = int(t_array.length/pausenum); for (var i = pause_d-1; i<=t_array.length-1; i = pause_d) { t_array[i].gotoAndStop(6); t_array[i].types = 6; } //生成返回起点格 trace(getEmptyTitle().length); var backnum = 3; var t_array = getEmptyTitle(); var pause_d = int(t_array.length/backnum); for (var i = pause_d-1; i<=t_array.length-1; i = pause_d) { t_array[i].gotoAndStop(8); t_array[i].types = 8; } //生成时空隧道格 trace(getEmptyTitle().length); var spacenum = 6; var t_array = getEmptyTitle(); var pause_d = int(t_array.length/spacenum); for (var i = pause_d-1; i<=t_array.length-1; i = pause_d) { t_array[i].gotoAndStop(7); t_array[i].types = 7; } //生成练习格 var testnum = 10; var t_array = getEmptyTitle(); var pause_d = int(t_array.length/testnum); for (var i = pause_d-1; i<=t_array.length-1; i = pause_d) { t_array[i].gotoAndStop(9); t_array[i].types = 9; } } 2.获取空格信息,并返回数组 function getEmptyTitle() { var t_array = []; for (var i = 1; i<=titleMaxnum; i ) { if (eval("t" i).types == 1) { t_array.push(eval("t" i)); } } return t_array; }3.控制筛子,随机扔,b1和b2为两个mc,里面共6帧
function throwPoint() { trace("事件:玩家" curplayer "出筛子"); curflag = false; b1.play(); b2.play(); throwid = setInterval(function () { var b1_num = int(Math.random()*6) 1; var b2_num = int(Math.random()*6) 1; b1.gotoAndStop(b1_num); b2.gotoAndStop(b2_num); b1.values = b1_num; b2.values = b2_num; trace("第1个筛子的大小为:" b1.values); trace("第2个筛子的大小为:" b2.values); //throw_btn._visible = 1; curflag = true; //电脑执行移动 if (curplayer<>1) { comai(); } clearInterval(throwid); }, 2000); }4.玩家轮流制控制
function nextplayer() { if (c1.overflag) { trace("游戏结束"); return; } //下一个玩家执行 if (curplayer == 3) { curplayer = 1; if (!this["c" curplayer].overflag) { if (!this["c" curplayer].stopflag) { flashcast(this["c" curplayer], true); throw_btn._visible = 1; } else { this["c" curplayer].stopflag = false; nextplayer(); } } else { nextplayer(); } } else { curplayer ; if (!this["c" curplayer].overflag) { if (!this["c" curplayer].stopflag) { flashcast(this["c" curplayer], true); throwPoint(); } else { this["c" curplayer].stopflag = false; nextplayer(); } } else { nextplayer(); } } }
Flash
[1] [2] [3] 下一页
|
|
| 教程录入:admin 责任编辑:admin |
|
|
上一篇教程: 教程: Flash教程-Flash游戏实例教程-Flash游戏制作--五子连珠
下一篇教程: 教程: Flash教程-Flash游戏实例教程-Flash 游戏制作:抢手棋 |
|
|
|
|
|
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|
|
|
|