C語言實現(xiàn)flappy bird游戲
更新時間:2018年12月24日 10:37:00 作者:Cielfire
這篇文章主要為大家詳細介紹了C語言實現(xiàn)flappy bird小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)flappy bird的具體代碼,供大家參考,具體內(nèi)容如下
#include<stdio.h>
#include<conio.h>
#include<windows.h>
//定義全局變量
int high,width; //邊界
int bird_x,bird_y; //小鳥坐標
int bar_y; //擋板坐標
int bar_xTop,bar_xDown; //擋板開口上下坐標
int score; //得分
void HideCursor() //隱藏光標
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void gotoxy(int x,int y) //光標移動到(x,y)位置
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(handle,pos);
}
void startup() //數(shù)據(jù)初始化
{
high=18; //初始化邊界
width=26;
bird_x=high/2; //初始化小鳥坐標
bird_y=width/2;
bar_y=width; //擋板坐標
bar_xTop=high/2; //擋板開口
bar_xDown=bar_xTop+4;
score=0; //得分
HideCursor(); //隱藏光標
}
void show() //顯示界面
{
int i,j;
gotoxy(0,0);
for(i=0;i<=high+1;i++)
{
for(j=0;j<=width;j++)
{
if((i==bird_x)&&(j==bird_y))//輸出小鳥@
printf("@");
else if(i==high+1) //輸出下邊界
printf("_");
else if(j==width) //輸出右邊界
printf("|");
else if((j==bar_y)&&((i<=bar_xTop)||(i>=bar_xDown))) //輸出擋板
printf("|");
else printf(" ");
}
printf("\n");
}
printf("得分:%d\n",score);
}
void updateWithoutInput() //與用戶輸入無關的更新
{
if(bird_y==bar_y-1)
{
if((bird_x>bar_xTop)&&(bird_x<bar_xDown)) //小鳥通過擋板開口加分
score++;
else
{
printf("小鳥死亡\n"); //小鳥沒沒通過擋板開口小鳥死亡
exit(0);
}
}
if(bar_y>0)
bar_y--;
else
{
bar_y=width;
bar_xTop=rand()%(high-4);
bar_xDown=bar_xTop+4;
}
if(bird_x<high+1)
bird_x++;
else
{
printf("小鳥死亡\n");
exit(0);
}
Sleep(200);
}
void updateWithInpute() //與用戶輸入有關的更新
{
char input;
if(kbhit())
{
input=getch();
if((input==' ')&&(bird_x>0)&&(bird_x<=high) ) //小鳥向上跳
bird_x=bird_x-2;
}
}
int main()
{
startup(); //數(shù)據(jù)初始化
while(1)
{
show(); //顯示界面
updateWithoutInput(); //與用戶輸入無關的更新
updateWithInpute(); //與用戶輸入有關的更新
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
項目之C++如何實現(xiàn)數(shù)據(jù)庫連接池
這篇文章主要介紹了項目之C++如何實現(xiàn)數(shù)據(jù)庫連接池問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
C++實現(xiàn)LeetCode(25.每k個一組翻轉鏈表)
這篇文章主要介紹了C++實現(xiàn)LeetCode(25.每k個一組翻轉鏈表),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07

