C语言课程设计运动的小车动画_第1页
C语言课程设计运动的小车动画_第2页
C语言课程设计运动的小车动画_第3页
C语言课程设计运动的小车动画_第4页
C语言课程设计运动的小车动画_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、xxx航空工业学院 课课 程程 设设 计计 报报 告告 课程设计名称:c 语言课程设计语言课程设计 课程设计题目:运动的小车动画 院(系):计算机学院 专 业:网络工程 班 级: 学 号: 姓 名: 指导教师: 完成日期:2009年07月17日 沈阳航空工业学院课程设计报告 -i- 目目 录录 第第 1 章章 需求分析需求分析.1 1.1 题目的内容与要求.1 1.2 开发工具.1 1.3 题目分析.1 第第 2 章章 概要设计概要设计.2 2.1 总体结构.2 第第 3 章章 详细设计详细设计.3 3.1 主函数模块.3 2.2 图形驱动模块.3 2.3 场景游戏模块.4 3.4 游戏过程模

2、块.5 3.5 结束模块模块.7 第第 4 章章 调试分析调试分析.8 第第 5 章章使用说明使用说明.9 参考文献参考文献.11 附附 录(程序清单)录(程序清单).12 沈阳航空工业学院课程设计报告 -1- 第 1 章 需求分析 1.1 题目的内容与要求题目的内容与要求 内容:实现一个简单动画,屏幕背景为蓝色,画一简单小车。小车在屏中随 意移动。 要求: 1)实现简单的游戏界面; 2)对小车运动进行控制; 3)熟练掌握基本的调试方法,并将程序调试通过; 4)采用 vc 环境进行调试运行。 1.2 开发工具开发工具 操作系统:windowsxp sp2。 硬件环境:cpuamd3000+内存

3、 1g ,硬盘 120g。 软件环境:turboc。 1.3 题目分析题目分析 本程序首先分为四个模块即编写四个函数,主程序按顺序调用这四个函数最 后掉用关闭图形系统函数,至此整个程序算是真正结束。题目程序设计思想分析 是:先设置背景色和前景色,确定小车的初始位置和车头方向,画出小车,在没 有按键的情况下,进入一个循环系统小车自动向前运动,直到撞墙,有按键的情 况下,判断按键的性质确定车头的方向,计算小车的新坐标,进入另一个画车循 环,一直循环,直到结束。 沈阳航空工业学院课程设计报告 -2- 第 2 章 概要设计 2.1 总体结构总体结构 本程序主要分为五个模块:主函数模块,图行驱动模块,场

4、景游戏模块,游 戏过程模块,结束模块。主函数模块实现函数调用。图行驱动模块对图行操作系 统进行初使化。场景游戏模块建立简单的游戏界面。游戏过程模块画小车,并通 过键盘控制小车的运动。结束模块关闭作图系统,结束程序(如图 2.1) 。 小车动画程序 场 景 游 戏 模 块 游 戏 过 程 模 块 主 模 块 图 形 驱 动 模 块 结 束 模 块 图图 2.1 功能模块功能模块 1 主函数模块:本模块主要实现函数的调用,一共四个函数。 2 图行驱动模块:本模块主要是实现对图形系统进形初始化以及做出简单界 面,设置屏幕背景颜色,还有显示游戏开始时的菜单。 3 场景游戏模块:本模块主要是实现画出游戏

5、界面,利用循环画出四面墙, 屏幕背景为蓝色。 4 游戏过程模块:本模块主要是实现画出初始小车及显示其位置,用 swich- case()来控制小车的移动情况。 5 结束模块:本模块主要是实现最后清屏以及关闭作图系统,显示游戏结束 菜单。 沈阳航空工业学院课程设计报告 -3- 第 3 章 详细设计 3.1 主函数模块主函数模块 控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块, 实现各项功能,流程如图 3.1 所示。 调用 init()函数 调用 drawplay()函数 调用 gameplay()函数 调用 close()函数 开始 结束 图图 3.1 主模块流程图主模块流程图

6、 主函数主要完成函数的调用,一共有四个函数:画图系统初始化函数,画开 始游戏界面函数,游戏过程函数,关闭图形系统函数。 2.2 图形驱动模块图形驱动模块 此模块完成图形操做系统初始化,选择适配器,设置背景颜色及前景色,显示 进入游戏界面,流程如图 3.2 所示。 沈阳航空工业学院课程设计报告 -4- initgraph( setbkcolor(blue) etcolor(11); setlinestyle(); i=50 i=600 rectangle(i,40,i+10,49) rectangle(i,451,i+10,460) i+ i=40 i=450 rectangle(50,i,59

7、,i+10) rectangle(601,i,610,i+10 ) i+ y n y n 结束 开始 图图 3.3 场景模块流程图场景模块流程图 3.4 游戏过程模块游戏过程模块 此程序是本游戏的主体部分,主要完成游戏的运动过程,首先确定小车的位 置和车头方向,接着在这个位置画小车,利用循环画小车,在没有按键情况下, 进入画小车循环,直到小车撞墙结束整个程序。如果有按键则判断按键的数值, 沈阳航空工业学院课程设计报告 -6- 计算新的坐标,再判断小车头是否撞墙,如果撞墙则结束循环显示结束出结束界 面的内容,如果不 撞墙则进入画小车循环,接着进入有没有按键的循环,直到 整个程序结束为止。流程如图

8、 3.4 所示。 进入 设置小车初始方 向和位置 i=0 i4 画第i节小车 i- 没有按键 i=3 i=0 car.xi=car.xi-1; car.yi=car.yi-1; i-; 判断按键等于 esc key=up int gamespeed=60000;/*游戏速度自己调整*/ struct car int xn; int yn; int node;/*小车的节数*/ int direction;/*小车移动方向*/ car; void init(void);/*图形驱动*/ void close(void);/*图形结束*/ void drawk(void);/*开始画面*/ voi

9、d gameover(void);/*结束*/ void gameplay(void);/*具体过程*/ /*主函数*/ void main(void) init();/*图形驱动*/ drawk();/*开始画面*/ 沈阳航空工业学院课程设计报告 -13- gameplay();/*具体过程*/ close();/*图形结束*/ /*图形驱动*/ void init(void) int gd=detect,gm; initgraph( cleardevice(); /*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/ void drawk(void) setbk

10、color(blue); setcolor(11); setlinestyle(solid_line,0,thick_width);/*设置线型*/ for(i=50;i=600;i+=10)/*画围墙*/ rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ for(i=40;i0;i-)/*小车的每个环节往前移动,也就是小车运行的关 键算法*/ car.xi= car.xi-1; car.yi=car.yi-1; /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动车头*/ switch(car.dir

11、ection) case 1:car.x0+=20;break; case 2: car.x0-=20;break; case 3: car.y0-=20;break; case 4: car.y0+=20;break; if(car.x0595|car.y0455)/*小车是否撞到墙壁*/ gameover();/*本次演示结束*/ getch(); setcolor(4);/*画出小车*/ for(i=0;icar.node;i+) rectangle(car.xi,car.yi,car.xi+20, car.yi-20); delay(gamespeed); setcolor(blue)

12、;/*用背景色去除车的的最后一节*/ rectangle(car.xcar.node-1,car.ycar.node-1, car.xcar.node-1+20,car.ycar.node-1-20); /*endwhile(!kbhit)*/ key=bioskey(0);/*接收按键*/ if(key=esc)/*按esc键退出*/ gameover(); else 沈阳航空工业学院课程设计报告 -15- if(key=up else if(key=right else if(key=left else if(key=down /*endwhile(1)*/ void gameover(v

13、oid) cleardevice(); setcolor(red); settextstyle(0,0,4); outtextxy(200,200,game over); close(); /*图形结束*/ void close(void) getch(); closegraph(); 沈阳航空工业学院课程设计报告 -16- 课程设计总结:课程设计总结: 这次 c 语言课程设计是我的第一次编写一个相对平时实验课写的小程序大 得多也复杂得多的程序。我的题目是小车动画,属于游戏类,用到的函数全是新的, 这说明我必须自修,对我来说是一个挑战。 在这一个暑假的的开发工作中,虽然遇到不少困难和难题,但是我都以坚 坚持不懈的毅力和顽强的拼搏精神一一解决了它们。虽然暑假没玩好,看书看 到眼睛疼,但是当小车动画程序最终按自己的意图执行时的欣慰亦足以弥补。 通过此次的课程设计,我也意识到了自身的不足。无论是从程序模块化还 是系统稳定性都还有很大的改进优化余地,自己 c 语言知识学的太少,以后学习 应该开阔眼界,应当多阅读他人的优秀程序,取

温馨提示

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

评论

0/150

提交评论