- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一步:创建角色
首先,我们打开我们的编程软件,可以tc20或者tc30等,我这里就用win-tc作为演示。
我们新建一个文件,先将其保存,并命名为game.c
然后然我们通过简单的编程来显示我们的主角,这里我们以一个笑脸字符来代表主角。
#include stdio.h
main()
{
printf(%c,2);
getch();
}
大家看到,我们这里调用stdio.h,这个头文件包含了很多输入输出的函数,我们这里用到printf函数和getch函数都包含在stdio.h头文件中。只要调用stdio.h才能使用以上两个函数。程序从main()开始执行后有两个语句。printf(%c,2);其中的2是显示ASCII码序号为2的那个字符,看起来就像一个笑脸,其他的ASCII码大家可以从网上搜索到。而对于getch();我们可以当做是等待按键输入的函数,如果没有按键输入,程序就被卡在getch();的地方,这样程序才不会很快就结束了。
第二步:控制角色
接下来,我们想方设法来让我们的主角可以根据我们的按键而动起来。当我们按下键盘“上”的时候,主角就往上移动。其他方向亦是如此。
我们先来看看如何判断按键的输入呢, 在bios.h头文件中有一个bioskey函数,可以判断我们的按键。我们可以通过如下的结构来判断按键:
while()
{
当按键为上时发生什么事
当按键为下时发生什么事
当按键为左时发生什么事
当按键为右时发生什么事
}
其中的while(){……}就是将{}里面的内容无限次地循环。同时我们可以通过switch语句来判断玩家到底按了哪个按键。
再来说说两个会用到的函数,clrscr函数是清屏函数,也就是把屏幕上的内容清空。gotoxy(横坐标, 纵坐标)这个函数会把光标移动到我们指定的坐标,使后面的输出在指定位置开始。
为了调用的方便,我们还添加一个函数draw专门来负责显示。
看看我们修改后的代码, 中间的内容是注释
#include stdio.h
#include bios.h
int x=10, y=10;
?
void draw(int x,int y)
{
clrscr();
gotoxy(x, y);
printf(%c,2);
}
?
?
void main()
{
draw(x,y);
while()
{
switch(bioskey(0))
{
case 18432:
y-=1;draw(x,y);break;
case 20480:
y+=1; draw(x,y);break;
case 19200:
x-=1; draw(x,y);break;
case 19712:
x+=1; draw(x,y);break;
}
?
}
}
?
好了,大家接下来就可以运行一下看看效果了,我们现在可以按键盘上的上下左右键来控制屏幕中笑脸的移动了。效果如下图所示:
?
?
?
第三步:显示地图
接下来,让我们来开始制作地图。我们可以用一个二维数组把屏幕上每个“格子”都对应起来,当对应屏幕上相应格子的二维数组的值为0时,屏幕在那个位置不显示任何内容,而当它的值为1的时候,屏幕上显示一个“心”。
现在就让我们来定义这个二维数组,我这里以总共有15行和15列来作为演示,大家可以根据实际需要来增加。我们在int x=10, y=10;的后面加上以下代码:
int map[15][15]={
1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,
文档评论(0)