没有合适的资源?快使用搜索试试~ 我知道了~
c语言游戏初始编程.doc
4星 · 超过85%的资源 需积分: 10 17 下载量 107 浏览量
2011-04-02
19:24:38
上传
评论
收藏 108KB DOC 举报
温馨提示
试读
21页
思路来自百度 源代码个人编写 1,为字符界面 2,内容有 迷宫,推箱子,碰撞,键盘控制 4项
资源推荐
资源详情
资源评论
/*************************************************
** 文字信息大部分来自百度:http://tieba.baidu.com/f?kz=4276396
** 我只是给加上了源程序 。
** 976 于 2011 年 4 月 2 日
** 所有源程序仅供学习使用!特声明
** 程序源码
** 适用 TC2.0
** BY 976
** E-Mail : fdca_6431@126.com
** Copyright @ 2011, All Rights Reseverd
*************************************************/
纯真童趣的《泡泡堂》,还有武林情仇,笑傲江湖的《剑侠情缘 on
line》.它是 e 时代常谈的话题,是交互式娱乐的主力军,是一种
高层次的综合艺术,更是一个民族的文化,世界观的全新传播方式
.作为游戏玩家的我们,是不是想设计一个属于自己的游戏呢?
爱玩是人的天性,而 C 语言是我们计算机专业都要学习的一门基础
学科.一般来说,是比较枯燥的.那么,我们能不能通过编一些小
游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦
,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣.这正是
我发贴的目的.
1, 总是从 Hello,world 开始
学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell
o,world!".让我们来看看这个最简单的 C 程序:
#incolude <stdio.h> /*把输入输出函数的头文件包含进来*/
int main()
{
printf("Hello,
world!");/*在屏幕上输出字符串"Hello,world!"*/
return 0;/*退出 main 函数,并返回 0*/
}
下面我们发现几个值得改进的地方,1,程序的运行结果一闪而过
.2,每执行这个程序一次都能看见上次运行留下的字符.3,我们
还希望屏幕输出一个笑脸来欢迎我们.(大家不要小看了这个笑脸
曾经有人发贴专门问呢)让我们来改进一下这个程序吧!
1,在 return 语句的前面加一句:getch ();,表示按任意键结
束.2,在 printf 语句前用 clrscr 函数清屏,要使用这个函数和 get
ch 函数,需要在程序开头再包含头文件 conio.h.3,ASCII 码也有
许多非常好玩的字符,比如 ASCII 码值为 2 的就是一个笑脸,我们可
以用 printf("%c", 2)来输出一个笑脸.
现在我们把 Hello,world 程序改成一个更好看的 Hello,world 了.下
面让我们开始做游戏吧!
/*****************Start of C Program**********************/
#include<stdio.h>
#include<conio.h>
/**
** 经测试 命令提示符 窗口 容纳 字符数 为 : 80 * 25
** 据此 ,设置 HMAX 为 25 ,VMAX 为 80
** 边界初始值为 (1,1)----(80,25)
**/
#define HMAX 25
#define VMAX 80
struct move_point
{
int x, y;/*该点的位置,包括 x 坐标和 y 坐标*/
int xv, yv;/*该点在 x 轴,y 轴的速度*/
};
int main()
{
struct move_point man;
/* 结构体初始化 */
man.x = 1;
man.y = 1;
man.xv = 1;
man.yv = 1;
gotoxy(man.x, man.y);/*把光标移到指定的坐标*/
/* 初始显示 */
printf("%c\b", 2);
getch();
while(!kbhit())/* kbhit()无键盘输入时返回值为真 */
{
/*
** 先消去原位置图形,
** 再计算新位置
** 显示
*/
/**/
gotoxy(man.x, man.y);
printf(" ");
/* 感觉没清屏函数好用 , 边界时常会留下笑脸无法清除 * /
clrscr();/**/
man.x += man.xv;/*水平方向按 x 轴的速度运动*/
man.y += man.yv;/*垂直方向按 y 轴的速度运动*/
/* 应该反弹时计算 */
if(man.x>VMAX||man.x<1)
{
man.xv = 0 - man.xv;
man.x = (VMAX*2 - man.x)%(VMAX*2);
}
if(man.y>HMAX||man.y<1)
{
man.yv = 0 - man.yv;
man.y = (HMAX*2 - man.y)%(HMAX*2);
}
/* 新位置显示 */
gotoxy(man.x, man.y);
printf("%c\b",2);
/* 延时, i 或 j 减小太多会呈现不规则运动 */
{
int i, j;
for(i=0;i<10000;i++)
for(j=0;j<10000;j++)
;
}
}
return 0;
}
/*****************End of C Program**********************/
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("%c\b", 2); /*输出 ASCII 码值为 2 的"笑脸"字符*/
怎么样?是不是很有趣呢?不过这个笑脸一直是自己运动,能不能
让我们来控制它运动呢?答案是肯定的,让我们继续往下学吧!
/*****************Start of C Program**********************/
/*************************
** 程序源码
** 适用 TC2.0
** BY 976
** E-Mail : fdca_6431@126.com
** Copyright @ 2011, All Rights Reseverd
*************************/
#include<stdio.h>
#include<conio.h>
/**
** 经测试 命令提示符 窗口 容纳 字符数 为 : 80 * 25
剩余20页未读,继续阅读
资源评论
- sunnangaoxing2012-10-08很好,程序终于找到了
- O默默Oo2012-08-02没有注释啊.
fdca6431
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功