马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zlh 于 2016-2-12 08:53 编辑
大家好,今天我们继续来编写我们的飞机大战小游戏。
今天我们来解决画图问题。
大家都知道,在VC中是很难画出漂亮的图形的,因为VC没有继承TC的<graphics.h>函数库。
所以我们只能用简单的字符来画出图案。
程序开始我们要先画出一个边框,来限定飞机的飞行范围。
我们不妨设置边框的边长为21×20.
不要以为长和宽差不多,在上一篇文章中我曾提到:DOS界面正常是一个80列×25行的窗口。
实际上80列中,每一个字符占两格。25行中,每个字符占一格。
如果你还不明白,打开你的编译器,分别输出同样数量的横向排列的*和纵向排列的*。
是不是纵向排列的比横向排列的多?
回到正题
我们不妨用*号作为边框。而画边框时我们不可能一个一个*号输出,所以我们要使用for循环来节省工作量。
这里我们就要用到gotoxy()函数。这个函数可以到我的上一篇文章复制。飞机大战小游戏编写教程(1)
我们画长时,列x不变。画宽时,行y不变。变量用for循环每次增加的那个数据控制。
下面是代码。void huatu()//画图
{
int i,n;
for(i=0;i<=20;i++)
{
for(n=0;n<=20;n++)
{
printf("*");
}
printf("\n");
}
for(i=1;i<=19;i++)
{
for(n=1;n<=19;n++)
{
gotoxy(i,n);
printf(" ");
}
}
}
画完图后当然是必不可少的游戏说明。
注释就十分的简单,只要移动到一个合适的位置,就可以输出了。
下面是代码:void shuoming()
{
gotoxy(0,0);
printf("\t\t\t\n\n\n\n");
printf("\t\t\t方向控制\n\n"
"\t\t\t左 a\n\n"
"\t\t\t右 d\n\n"
"\t\t\t子弹 空格\n\n\n"
"\t\t\t退出请按 ESC\n");
gotoxy(x,y);
printf("♂");
gotoxy(22,2);
printf("分数:");
gotoxy(0,0);
}
这里我顺便把飞机也包括在内,看了我的注释大家可能会奇怪,为什么飞机只会左右走呢?
这个问题在我们明天的各项角色的移动中会讲到。
|