小游戏设计.doc_第1页
小游戏设计.doc_第2页
小游戏设计.doc_第3页
小游戏设计.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC编写小游戏 做一个飞机大游戏。用A D 控制左右走动,用k 控制发射子弹。敌机不断从对面飞来,子弹击中敌机得分,我机被敌机碰撞我机死亡。 定义一个二维数组作为游戏界面。读取键盘按键操作数组内的数据,输出整个数组,刷新,重复。 游戏开始后,先判断是否有按键;有,则判断是否为A,如果是,控制我方飞机的的数组元素向左移动一位,如果不是A,判断是否为D,若是,控制飞机的数组元素向右移动一位;若不为D,判断是否为K,若是,则在飞机前一行对应位置赋值一个子弹元素,若不是K,判断是否为ESC,若是ESC,则返回设置界面,其他按键无效;另外,游戏开始时,在数组第一行赋值一个敌机数值,当敌机在同一列上穿过飞机位置,则死亡次数加1,子弹在同一列上穿过敌机位置,敌机原来位置赋值空格元素,分值(score)加10.敌机移动:从数组第一行第一个元素开始判断,如果是敌机数值,该数值向下移动一行,原位置赋值空白。 子弹移动:从数组最后一行第一个元素判断,如果是子弹数值,该数值向上移动一行,原位置赋值空白。输出数组:从数组一行第一元素开始判断,判断里面的数组,输出相应的符号。源程序代码:#include #include #include #include #define N 35void print(int N);/输出函数void movebul(int N);/子弹移动函数void movepla(int N);/敌机移动函数void setting(void);/设置函数void menu(void);/菜单函数int scr22N=0,pl=9,width=24,speed=3,density=30,score=0,death=0;/全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡void main()int i=0,j=0;menu();scr21pl=1;scr05=3;while(1)if(kbhit()switch(getch()/控制左右移动和进入菜单case a:case A:if(pl0)scr21pl=0,scr21-pl=1;break;case d:case D:if(plwidth-2)scr21pl=0,scr21+pl=1;break;case k:case K:scr20pl=2;break;case 27 :setting();break;if(+j%density=0)/控制生产敌机的速度j=0;srand(time(NULL);scr0rand()%width=3;if(+i%speed=0)/控制敌机移动速度,相对于子弹移动速度movepla(scr);movebul(scr);print(scr);if(i=30000)i=0;/以免i 越界void print(int aN)int i,j;system(cls);for(i=0;i22;i+)aiwidth-1=4; /右边界for(j=0;jwidth;j+)if(aij=0)printf( );if(aij=1)printf(5);/输出我机的符号if(aij=2)printf();/子弹if(aij=3)printf(3); /输出敌机符号if(aij=4)printf(|);if(i=0&j=width-1)printf(得分:%d,score);/右上角显示得分if(i=1&j=width-1)printf(死亡:%d,death);if(i=2&j=width-1)printf(设置:Esc);printf(n);void movebul(int aN)int i,j;for(i=0;i22;i+)for(j=0;j=0;i-)/从最后一行往上是为了避免把敌机直接冲出数组。for(j=0;j );switch(getche()case 1:width=34;break;case 2:width=24;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);dosw=0;printf(n 请选择敌机密度:1.大2.中3.较小4.小 );switch(getche()case 1:density=10;break;case 2:density=20;break;case 3:density=30;break;case 4:density=40;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);dosw=0;printf(n 敌机的飞行速度:1.快2.中3.慢 );switch(getche()case 1:speed=3;break;case 2:speed=5;break;case 3:speed=8;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);for(i=0;i22;i+)for(j=0;j45;j+)scrij=0;scr21pl=9=1;print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论