飞机大战小游戏编写教程(2)
本帖最后由 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);
}
这里我顺便把飞机也包括在内,看了我的注释大家可能会奇怪,为什么飞机只会左右走呢?
这个问题在我们明天的各项角色的移动中会讲到。
沙发945
@小甲鱼的二师兄 @康小泡 @拈花小仙 @machimilk @黑龍 zlh 发表于 2016-2-11 19:24
沙发945
@小甲鱼的二师兄 @康小泡 @拈花小仙 @machimilk @黑龍
{:7_123:}等你把教程做完以后,找小甲鱼推广下,不要一个一个at我们哈` {:7_139:}还是柯南那个头像帅,不要用QQ秀头像啦` 拈花小仙 发表于 2016-2-11 19:52
还是柯南那个头像帅,不要用QQ秀头像啦`
ok 挺好的
ps:楼主的代码的缩进弄得规范一些。。。 拈花小仙 发表于 2016-2-11 19:52
还是柯南那个头像帅,不要用QQ秀头像啦`
我感觉初始的好看 还是连续剧啊 黑龍 发表于 2016-2-11 21:29
挺好的
ps:楼主的代码的缩进弄得规范一些。。。
他们的小龟比你的好看哈,你的有毛边。 黑龍 发表于 2016-2-11 21:29
挺好的
ps:楼主的代码的缩进弄得规范一些。。。
本来是好的,复制过来后就不对了 学习学习 1在这么前面,2居然没有人顶 1哇塞,解析的好 {:10_277:} 支持!!! 写得这么好没人来加分呢 {:5_91:}
页:
[1]