#include#include#include#include//遊戲地圖資訊,行、列、地圖
#define row 15
#define col 19
int map[row][col];
//玩家結構,橫座標、縱座標、下落速度
typedef struct player
player;
player p;
//障礙物結構,縱座標、和地圖頭部的距離、空處長度、左移速度
typedef struct obstacle
obstacle;
obstacle o;
//初始化地圖資訊
void initializemap();
//初始化玩家
void initializeplayer();
//初始化障礙物
void initializeobstacle();
//和玩家無關的重新整理
void printwithoutplayer();
//和玩家有關的重新整理
void printwithplayer();
//列印地圖
void printmap();
//gotoxy函式的實現,到指定位置輸出
void gotoxy(int x,int y);
int main()
return 0;
}//初始化地圖資訊
void initializemap()
break;
} o.y=col-1;
o.yv=1;
}//和玩家無關的重新整理
void printwithoutplayer()
//障礙物自動左移
o.y-=o.yv;
//障礙物移出介面了,則在右邊重新生成
if(o.y<=-1)
if(o.y==p.y&&!(p.x>=o.distancetotop&&p.x<=o.distancetotop+o.length)) }
//和玩家有關的重新整理
void printwithplayer() }}
//列印地圖,玩家@、邊框#、障礙物*
void printmap()
printf("\n");
for(i=0;i=o.distancetotop+o.length)
else
}else
}printf("#\n");
} for(i=1;i<=col+2;i++)
printf("\n");
} //gotoxy函式的實現,把游標移到到指定位置
void gotoxy(int x,int y)
fluppybird的遊戲介面由乙個邊框、乙個玩家、乙個障礙物構成。邊框可以包裹在玩家和障礙物外部而不需要額外定義。
首先定義乙個二維整形陣列作為地圖,15行19列全部元素置零。
其次我們定義玩家結構並初始化它在地圖的左右的最左邊、上下的中間位置。
然後我們讓障礙物的空缺長度定義為地圖上下寬度的三分之一,也就是5行左右的空缺給玩家反應時間。
接下來就得讓玩家和障礙物動起來,為了實現動畫效果,我們讓玩家每隔一定時間就往下落乙個單位的長度,障礙物則每隔一定時間向左移乙個單位的長度,當玩家撞到障礙物或者邊框,則遊戲結束;如果障礙物到達地圖最左端了,則在最右端重新生成。
除此之外,我們得給玩家操作的功能。按下空格鍵,玩家會上公升。這樣乙個簡單的fluppy bird就完成了。
這次fluppy bird 的實現,我們可以更加熟練運用隨機生成函式rand了,同時不能忘了它的**搭檔隨機數種子函式srand;而在其中我們獲得更多的則是對畫面抽象為字元的思考。我們可以回想之前在安卓或蘋果手機玩的高畫質的fluppy bird,其實略加思考我們便能發現:它一點也不難,只要善於思考和抽象,問題就會變得越來越趨向本質。給自己加油,繼續努力實現或創新新型的小遊戲,鍛鍊邏輯思維和抽象法解決實際複雜問題的能力。
C語言簡單遊戲程式設計學習入門之2048
include include include include include 過關數字 define win number 2048 定義地圖行 列 以及本身 define row 4 define col 4 int map row col 初始化地圖 void initializemap 列印...
C語言簡單遊戲程式設計學習入門之猜數字
標頭檔案引用 include include include 主函式 int main else if guess number else 猜中了 還沒有猜中,判斷猜測次數是否已經是最大次數次了,超過則遊戲失敗,退出死迴圈 if count guess max count return 0 猜數字遊...
C語言簡單遊戲程式設計學習入門之推箱子
include include include 定義地圖資訊 define row 8 define col 8 int map row col 人物位置 int person x 4 int person y 4 定義代號 define person 5 注意 人進了空地也顯示人,所以9也是人的代...