历史飞行棋》游戏设计
2008-04-02 11:07:15来源:互联网 阅读 ()
游戏界面:
游戏规则:
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.建立地图格子,为避免出现死循环,按照一定的顺序和规则进行.
//初始化格子信息
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;
}
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);
}
if(c1.overflag){
trace("游戏结束");
return;
}
//下一个玩家执行
if(curplayer==3){
curplayer=1;
if(!this["c" curplayer].overflag){
if(!this["c" curplayer].stopflag){
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Flash和后台编码问题解决新方案
下一篇: 如何创建时间轴动画
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash