用C语言编写笑脸游戏.doc_第1页
用C语言编写笑脸游戏.doc_第2页
用C语言编写笑脸游戏.doc_第3页
用C语言编写笑脸游戏.doc_第4页
用C语言编写笑脸游戏.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

用C语言编写笑脸游戏11, 总是从Hello,world开始 学习编程的第一个程序,一般就是打印一个亲切的词语Hell o,world!.让我们来看看这个最简单的C程序: #incolude /*把输入输出函数的头文件包含进来*/ int main() printf(Hello, world!); /*在屏幕上输出字符串Hello,world!*/ return 0; /*退出main函数,并返回0*/ 下面我们发现几个值得改进的地方:1,程序的运行结果一闪而过 2,每执行这个程序一次都能看见上次运行留下的字符.3,我们还希望屏幕输出一个笑脸来欢迎我们让我们来改进一下这个程序吧! 1,在return语句的前面加一句:getch ();,表示按任意键结束.2,在printf语句前用clrscr函数清屏,要使用这个函数和getch函数,需要在程序开头再包含头文件conio.h.3,ASCII码也有许多非常好玩的字符,比如ASCII码值为2的就是一个笑脸,我们可以用printf(%c, 2)来输出一个笑脸. 用C语言编游戏2心动的开始,一个运动中的笑脸 大家小时侯喜欢看动画片吗?哈哈,我猜你们都喜欢吧!下面就让 我们来做一个小动画吧.在屏幕上显示一个运动的小笑脸,而且当 它到达屏幕的边缘时会自动弹回来. 先在程序定义一个在屏幕中运动的点的结构: struct move_point int x, y;/*该点的位置,包括x坐标和y坐标*/ int xv, yv;/*该点在x轴,y轴的速度*/ ; 运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段 距离,再画出该物体.让我们看到以下代码: gotoxy(man.x, man.y); /*把光标移到指定的坐标*/ printf( ); /*输出一个空格,把先前的字符擦去*/ 然后我们让物体按其速度运动: man.x += man.xv; /*水平方向按x轴的速度运动*/ man.y += man.yv; /*垂直方向按y轴的速度运动*/ 运动后还要判断物体是否出界,如果出了界,就令物体反弹,即让 它下一刻的速度等于现在的速度的相反数.最后打印出这个笑脸: gotoxy(man.x, man.y); printf(%cb, 2); /*输出ASCII码值为2的笑脸字符*/ 怎么样?是不是很有趣呢?不过这个笑脸一直是自己运动,能不能 让我们来控制它运动呢?答案是肯定的,#include #include int main() struct point int x,y; int xv,yv; man; long p; man.x=man.y=20; man.xv=man.yv=1; clrscr(); p=100000000; while(p-) if(p%50000) continue; gotoxy(man.x,man.y); printf( ); man.x+=man.xv;/当x小于10或者大于70就转向;y也一样。 if(man.x70) man.x=70; man.xv*=-1; man.y+=man.yv; if(man.y70) man.y=70; man.yv*=-1; gotoxy(man.x, man.y); printf(%cb,2); getch(); return 0; 把程序改了一下,现在笑脸的运动看着舒服多了! #include #include int main() struct point int x,y; int xv,yv; man; long p; man.x=man.y=20; man.xv=man.yv=1; clrscr(); p=100000000; while(p-) if(p%50000) continue; gotoxy(man.x,man.y); printf( ); man.x+=man.xv; man.y+=man.yv; if(man.x=0|man.x=80) man.xv*=-1; if(man.y=0|man.y=25) man.yv*=-1; gotoxy(man.x, man.y); printf(%cb,2); getch(); return 0; 刚刚写了个根据光标移动的笑脸的程序 #include #include #include #define UP 18432 /*向上的键盘输入标志*/ #define DOWN 20480 /*向下的键盘输入标志*/ #define LEFT 19200 /*向左的键盘输入标志*/ #define RIGHT 19712 /*向右的键盘输入标志*/ main() struct move_point int x, y; int xv, yv; man; int key; man.x=20; man.y=20; man.xv=1; man.yv=1; while(bioskey(1)=0) key=bioskey(0); clrscr(); switch(key) case UP: man.y-=man.yv; if(man.y=0) man.y=0; if(man.x=300) man.x=300; if(man.y=0) man.y=0; if(man.y=300) man.y=300; /*以上四句作为控制边界,在调试时无法正常处理*/ gotoxy(man.x, man.y); printf(%cb,2);break; case DOWN: man.y+=man.yv; if(man.y=0) man.y=0; if(man.x=300) man.x=300; if(man.y=0) man.y=0; if(man.y=300) man.y=300; /*以上四句作为控制边界,在调试时无法正常处理*/ gotoxy(man.x, man.y); printf(%cb,2);break; case LEFT: man.x-=man.xv; if(man.y=0) man.y=0; if(man.x=300) man.x=300; if(man.y=0) man.y=0; if(man.y=300) man.y=300; /*以上四句作为控制边界,在调试时无法正常处理*/ gotoxy(man.x, man.y); printf(%cb, 2);break; case RIGHT: man.x+=man.xv; if(man.y=0) man.y=0; if(man.x=300) man.x=300; if(man.y=0) man.y=0; if(man.y=300) man.y=300; /*以上四句作为控制边界,在调试时无法正常处理*/ gotoxy(man.x, man.y); printf(%cb, 2);break; default: break; 程序运行时,闪的不得了,图像不清晰,放慢速度后就知道了 有待解决,其实也很简单;我给写一下程序就知道其短处了. #include #include void timeDelay(int time) unsigned int far *clock=(unsigned int far*)0x0000046CL; unsigned int now; now=*clock; while(*clock-nowtime); int main() struct point int x,y; int xv,yv; man; long p; man.x=man.y=20; man.xv=man.yv=1; clrscr(); p=100000000; while(p-) if(!knhit() if(p%50000) continue; gotoxy(man.x,man.y); printf( ); man.x+=m

温馨提示

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

评论

0/150

提交评论