2019第二次实验设计报告
作者:互联网
2019第二次实验设计报告
1.实验项目名称:下落的小鸟
2.实验项目功能介绍:
实现小鸟自由下落,按空格键小鸟上升,实现障碍物来袭,小鸟可以自由躲避障碍物
当小鸟碰到障碍物时,游戏结束。
3.项目模块结构介绍:
(1)隐藏光标,解决游戏画面闪烁
void gotoxy(int x,int y)
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(handle,pos);
}
(2)游戏数据的初始化
void startup()
{
high=20;
width=20;
bird_x=0;
bird_y=width/3;
bird1_y=width;
bar_xdown=high/3;
bar_xtop=high/2;
}
(3)输出小鸟及障碍物 显示游戏画面
void show()
{
gotoxy(0,0);
int i,j;
for(i=0;i<high;i++)
{
for(j=0;j<width;j++)
{
if(i==bird_x&&j==bird_y)
printf("@");
else if(j==bird1_y&&(i<bar_xdown||i>bar_xtop))
printf("*");
else
printf(" ");
}
printf("\n");
}
printf("\n");
printf("得分:%d\n",score);
printf("剩余生命数:%d",count);
}
(4)实现小鸟自由下落,障碍物自由移动以及有戏的结束及得分自由控制
void updatewithoutInput()
{
bird_x++;
bird1_y--;
if(bird_y==bird1_y)
{
if(bird_x>=bar_xdown&&bird_x<=bar_xtop)
score++;
else
{
count--;
}
}
if(bird1_y<=0)
{
bird1_y=width;
int temp=rand()%int(high*0.8);
bar_xdown=temp-high/10;
bar_xtop=temp+high/10;
}
if(count<0)
{
printf("游戏结束:\n");
system("pause");
exit(0);
}
Sleep(150);
}
(5)实现按空格键小鸟上升
void updatewithInput()
{
char input;
if(kbhit())
{
input=getch();
if(input==' ')
bird_x=bird_x-2;
}
}
(6)函数外全局变量的定义
int main()
{
startup();
while(1)
{
show();
updatewithoutInput();
updatewithInput();
}
return 0;
}
4.游戏界面展示
###5.代码托管连接:
https://gitee.com/djh000/djh000/commit/be05585dbba2ce3e8b93cb26b2a55829c3e698f4
6.实验总结:
该游戏叫做下落的小鸟,然后一个个障碍物来袭,玩家通过按空格键小鸟上升来控制
小鸟躲避障碍物,当碰到障碍物时,生命数量就会减一,当生命数为0时,即游戏结束。
提出问题: 发现该游戏难度有点大
解决方法: 可以通过增加游戏玩家的生命数量,或者减少障碍物缝隙使得游戏难度减少。
感想: 这个游戏我是看书完成的,发现不是很难,和上一个打飞机游戏差不多,每个环节都很相似,只是游戏数据不同罢了,但这些都是简单的游戏,但估计那些比较难的大型游戏也差不多,只是游戏数据和显示的画面很难。
标签:障碍物,游戏,void,小鸟,实验设计,2019,printf,第二次,bird 来源: https://www.cnblogs.com/djhxxx/p/10959763.html