c语言如何保存游戏进度,如何用C语言编写游戏.docx

如何用 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 闲人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值