C語言實現Flybird

2021-10-02 08:45:27 字數 2334 閱讀 6171

c語言實現flybird

原始碼如下:

#include

#include

#include

#include

#include

#include

#include

#include

#pragma comment(lib,"winmm.lib")

//宣告變數

image begin;

//開始介面

image background;

//背景

image bird[2]

;//鳥

image down[2]

;//往下的柱子(上邊的柱子)

image up[2]

;//往上的柱子(下邊的柱子)

image end[2]

;//結束介面

//定義pillar結構體

struct pillar

pillar[3]

;struct pillar *n;

//定義指向pillar[3]的指標

//定義bird結構體

struct bird

flybird=

;struct bird *p;

//定義指向flybird的指標

void

play_bgm()

//定義載入函式

void

load_image()

//定義一組柱子的數量

int i;

//定義初始化柱子的函式

void

init_pillar

(struct pillar pillar,

int i)

pillar[i]

.x=288

; pillar[i]

.y=0

;//起始位置

}//定義輸出柱子的函式

void

put_pillar

(struct pillar pillar,

int i)

}//定義柱子移動的函式

void

move_pillar

(struct pillar pillar,

int i)

endbatchdraw()

;}}//定義輸出鳥的函式

void

put_bird

(int x,

int y)

//定義按鍵函式,按"w"或者"space"鳥就往上動

void

key_down()

}//定義撞擊判斷函式,如果鳥撞到視窗上沿(y座標為0)或者背景圖中的地面(y座標為512),則遊戲結束

intstrike_floor()

else

}//定義撞擊判斷函式,如果鳥撞到柱子,則遊戲結束

intstrike_pillar

(struct pillar pillar)

}if( pillar[i]

.x>=

((p->x)-38

)&& pillar[i]

.x<=

((p->x)+34

))//判斷是否與下邊柱子相撞}}

return0;

//將(return 0)寫在for迴圈外面,如果與三個柱子都沒有碰撞,則返回0

}//定義顯示遊戲結束函式

void

gameover()

system

("gameover.vbs");

//輸出音訊

sleep

(5000);

exit(0

);}int

main()

system

("title flybird beta version 1.0");

initgraph

(288

,608);

//定義視窗大小,視窗座標繫在視窗的左上角

beginbatchdraw()

;putimage(0

,0,&begin)

;//輸出開始介面

sleep

(3000);

endbatchdraw()

;while(1

)if(strike_floor()

||strike_pillar

(pillar)

)sleep(90

);//休眠90ms

endbatchdraw()

;}getchar()

;closegraph()

;return0;

}

FlyBird原始碼 C語言版

其實flybird的實現邏輯難點主要是畫面的重新整理,而對小鳥的控制相對與貪吃蛇 俄羅斯方塊要簡單的多。include include include include int key 80,bird y 15,b long 0,map 60 30 void gotoxy int x,int y in...

C語言實現memcpy

memcpy和memmove都是c語言中的庫函式,在標頭檔案string.h中,作用是拷貝一定長度的記憶體的內容,他們的作用是一樣的,唯一的區別是,當記憶體發生區域性重疊 的時候,memmove保證拷貝的結果是正確的,memcpy不保證拷貝的結果的正確。程式設計師面試寶典中有例題 對應的原型如下 v...

C語言實現多型

c 中的多型是指 通過基類物件的指標或者基類物件的引用呼叫虛函式 表現更多派生類的特性,但根據c 多型的實現,我們發現這種方法存在一定的空間和效率的折損。不可否認,多型輕鬆解決了很多任務程中遇到的問題,這與 pure c 的解決方法比起來,更為優雅。在考慮移植性上,c 的光芒要蓋過 c 但 c 的多...