历史飞行棋》游戏设计

2008-04-02 11:07:15来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  游戏界面:

  

  游戏规则:

  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.建立地图格子,为避免出现死循环,按照一定的顺序和规则进行.

  
functioncreatemap(){

  //初始化格子信息

  for(vari=1;i<=titleMaxnum;i ){

  eval("t" i).types=1;

  }

  //生成前进和后退格,从第4格开始,每隔4格随机产生一个

  for(vari=4;i<=titleMaxnum;i =4){

  vartrnd=int(Math.random()*5) 1;

  eval("t" i).gotoAndStop(trnd);

  eval("t" i).types=trnd;

  }

  //生成暂停格

  trace(getEmptyTitle().length);

  varpausenum=8;

  vart_array=getEmptyTitle();

  varpause_d=int(t_array.length/pausenum);

  for(vari=pause_d-1;i<=t_array.length-1;i =pause_d){

  t_array[i].gotoAndStop(6);

  t_array[i].types=6;

  }

  //生成返回起点格

  trace(getEmptyTitle().length);

  varbacknum=3;

  vart_array=getEmptyTitle();

  varpause_d=int(t_array.length/backnum);

  for(vari=pause_d-1;i<=t_array.length-1;i =pause_d){

  t_array[i].gotoAndStop(8);

  t_array[i].types=8;

  }

  //生成时空隧道格

  trace(getEmptyTitle().length);

  varspacenum=6;

  vart_array=getEmptyTitle();

  varpause_d=int(t_array.length/spacenum);

  for(vari=pause_d-1;i<=t_array.length-1;i =pause_d){

  t_array[i].gotoAndStop(7);

  t_array[i].types=7;

  }

  //生成练习格

  vartestnum=10;

  vart_array=getEmptyTitle();

  varpause_d=int(t_array.length/testnum);

  for(vari=pause_d-1;i<=t_array.length-1;i =pause_d){

  t_array[i].gotoAndStop(9);

  t_array[i].types=9;

  }

  }

  2.获取空格信息,并返回数组

  functiongetEmptyTitle(){

  vart_array=[];

  for(vari=1;i<=titleMaxnum;i ){

  if(eval("t" i).types==1){

  t_array.push(eval("t" i));

  }

  }

  returnt_array;

  }
3.控制筛子,随机扔,b1和b2为两个mc,里面共6帧

  
functionthrowPoint(){

  trace("事件:玩家" curplayer "出筛子");

  curflag=false;

  b1.play();

  b2.play();

  throwid=setInterval(function(){

  varb1_num=int(Math.random()*6) 1;

  varb2_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.玩家轮流制控制

  
functionnextplayer(){

  if(c1.overflag){

  trace("游戏结束");

  return;

  }

  //下一个玩家执行

  if(curplayer==3){

  curplayer=1;

  if(!this["c" curplayer].overflag){

  if(!this["c" curplayer].stopflag){

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash和后台编码问题解决新方案

下一篇: 如何创建时间轴动画