如何用 C 语言编写游戏
网络游戏是常谈的话题 ,是交互式娱乐的主力军 , 是一种 高层次 的综合艺术 , 更是一个民族的文化 ,世界观的全新传播方式 作为游戏 玩家的我们 , 是不是想设计一个属于自己的游戏呢
爱玩是人的天性,而C语言是我们计算机专业都要学习的一门基 础学科.一般来说 , 是比较枯燥的 .那么, 我们能不能通过编一些小 游戏来提高它的趣味性呢这样学习程序设计 , 就不会是一件艰苦 , 枯燥的事 , 它变得象电脑游戏一样充满好奇 , 富有乐趣 . 这正是 我要写这文档目的 .
总是从 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 函数清屏 , 要使用这个函数和 get ch 函数, 需要在程序开头再包含头文件码也有
许多非常好玩的字符 ,比如 ASCII 码值为 2 的就是一个笑脸 , 我们可
int x, y;/*
int x, y;/*该点的位置 ,包括 x 坐标和 y 坐标*/
int x, y;/*
int x, y;/*该点的位置 ,包括 x 坐标和 y 坐标*/
以用 printf("%c", 2) 来输出一个笑脸 .
现在我们把 Hello,world 程序改成一个更好看的 Hello,world 了. 下 面让我们开始做游戏吧 !
心动的开始 , 一个运动中的笑脸
大家小时侯喜欢看动画片吗哈哈 ,我猜你们都喜欢吧 ! 下面就让 我们来做一个小动画吧 .在屏幕上显示一个运动的小笑脸 , 而且当 它到达屏幕的边缘时会自动弹回来 . 先在程序定义一个在屏幕中运动的点的结构 :
struct move_point
{
int xv, yv;/*
int xv, yv;/*该点在x轴,y轴的速度*/
int xv, yv;/*
int xv, yv;/*该点在x轴,y轴的速度*/
};
运动的原理是 , 先擦去物体先前的轨迹 , 让物体按其速度移动一段 距离, 再画出该物体 . 让我们看到以下代码 :
gotoxy, ;/* 把光标移到指定的坐标 */
printf(" ");/* 输出一个空格 , 把先前的字符擦去 */
然后我们让物体按其速度运动 :
+= ;/* 水平方向按 x 轴的速度运动 */
+= ;/* 垂直方向按 y 轴的速度运动 */
运动后还要判断物体是否出界 , 如果出了界 , 就令物体反弹 , 即让
它下一刻的速度等于现在的速度的相反数 . 最后打印出这个笑脸
gotoxy, ;
printf("%c\b", 2); /* 输出 ASCII 码值为 2 的"笑脸"字符*/ 怎么样是不是很有趣呢不过这个笑脸一直是自己运动 , 能不能 让我们来控制它运动呢答案是肯定的 , 让我们继续往下学吧 !
交互的实现——让我们来控制笑脸运动 这个程序的主要功能是接受按键 ,如果接收的是方向键 , 就让笑脸 顺着方向移动,如果接收的是ESC键就退出程序,其他按键则忽略 处理. 接受按键我们用以下两条语句 :
while (bioskey(1) == 0);/* 等待按键 */
key = bioskey(0);/* 把接收的按键的键盘码赋给变量 key*/
然后用 switch 语句来判断按键以及执行相关操作 , 如下 :
switch (key) /* 对变量 key 的值进行判断 */
{
case UP: /* 如果按的是向上键 */
…break; /* 让物体向上运动,并退出switch*/
case DOWN: /*如果按的是向下键 */
… break; /* 让物体向下运动 , 并退出 switch*/
case LEFT: /* 向左键 */
… break;;/* 向左运动 */
case RIGHT: /* 向右键 */
… break;/* 向右运动 */
2004-9-9 19:26 回复
c 闲人