如何用 c 语言编写小游戏
精品 word 文档 值得下载 值得拥有 纯真童趣的《泡泡堂》 , 还有武林情仇 ,
笑傲江湖的《剑侠情缘 on
line 》. 它是 e 时代常谈的话题 , 是交互 式娱乐的主力军 , 是一种 高层次的综合艺术 , 更是一个民族的文 化, 世界观的全新传播方式
. 作为游戏玩家的我们 , 是不是想设计一 个属于自己的游戏呢 ?
爱玩是人的天性,而C语言是我们计算机 专业都要学习的一门基础
学科.一般来说,是比较枯燥的.那么,我 们能不能通过编一些小 游戏来提高它的趣味性呢 ?这样学习程 序设计,就不会是一件艰苦
精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
, 枯燥的事 , 它变得象电脑游戏一样充满
好奇, 富有乐趣 . 这正是 我发贴的目的 .
总是从 Hello,world 开始 学习编程的第一个程序 , 一般就是打印 一个亲切的词语—— "Hell o,world!". 让我们来看看这个最简单的
C程序:
#incolude /* 把输入输出函 数的头文件包含进来 */
int main()
{
printf("Hello,
精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
world!");/* 在屏幕上输出字符串 "Hell o,world!"*/
return 0;/* 退出 main 函数, 并返回 0*/ }
面我们发现几个值得改进的地方 ,1,
程序的运行结果一闪而过
.2, 每执行这个程序一次都能看见上次 运行留下的字符 .3, 我们 还希望屏幕输出一个笑脸来欢迎我们 .
( 大家不要小看了这个笑脸 曾经有人发贴专门问呢 ) 让我们来改进 一下这个程序吧 !
1, 在 return 语句的前面加一句 :getch
精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
();, 表示按任意键结
束 .2, 在 printf 语句前用 clrscr 函数清 屏, 要使用这个函数和 get
ch 函数, 需要在程序开头再包含头文件 c onio.h.3,ASCII 码也有 许多非常好玩的字符 , 比如 ASCII 码值为 2 的就是一个笑脸 , 我们可 以用 printf("%c", 2) 来输出一个笑脸 . 现在我们把 Hello,world 程序改成一个 更好看的 Hello,world 了. 下
面让我们开始做游戏吧 !
心动的开始 , 一个运动中的笑脸
精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
大家小时侯喜欢看动画片吗 ?哈哈, 我猜 你们都喜欢吧 ! 下面就让 我们来做一个小动画吧 . 在屏幕上显示 一个运动的小笑脸 , 而且当 它到达屏幕的边缘时会自动弹回来 . 先在程序定义一个在屏幕中运动的点的 结构:
struct move_point
{
int x, y;/* 该点的位置 , 包括 x
坐标和 y 坐标 */
int xv, yv;/* 该点在x轴,y轴
的速度*/
精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
}; 运动的原理是 , 先擦去物体先前的轨迹 , 让物体按其速度移动一段 距离, 再画出该物体 .让我们看到以下代 码: gotoxy(man.x, man.y);/* 把光标移到 指定的坐标 */ printf(" ");/*输出一个空格 , 把先前
的字符擦去 */ 然后我们让物体按其速度运动 : man.x += man.xv;/* 水平方向按 x 轴的 速度运动 */ man.y += man.yv;/* 垂直方向按 y 轴的 速度运动 */ 精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有 运动后还要判断物体是否出界 , 如果出 了界,就令物体反弹 ,即让 它下一刻的速度等于现在的速度的相反 数. 最后打印出这个笑脸 : gotoxy(man.x, man.y);
printf("%c\b", 2); /* 输出 ASCII 码值
为 2 的" 笑脸"字符*/ 怎么样 ?是不是很有趣呢 ?不过这个笑脸 一直是自己运动 , 能不能 让我们来控制它运动呢 ?答案是肯定的 , 让我们继续往下学吧 !
交互的实现——让我们来控制笑脸 运动 精品 word 文档 值得下载 值得拥有
精品 word 文档 值得下载 值得拥有
这个程序的主要功能是接受按键 , 如果 接收的是方向键 , 就让笑脸
顺着方向移动,如果接收的是ESC键就退
出程序