#include#include#include#include#include#include
#pragma comment(lib,"Winmm.lib")
int width, high; //screen dimention
IMAGE img_bk,img_bird,img_bird_1,img_bar_up,img_bar_up_1,img_bar_down,img_bar_down_1; //define image name
int bird_x, bird_y; //bird position
int bar_x, bar_up_y, bar_down_y; //bar position
int bird_fly_step,bird_down_step; //control step
intscore;void startup() { //init data
width = 432;
high= 675;
initgraph(width,high);//draw screen//load images
loadimage(&img_bk,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bk.jpeg");
loadimage(&img_bird,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bird.jpg");
loadimage(&img_bird_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bird_1.jpg");
loadimage(&img_bar_up,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_up2.gif");
loadimage(&img_bar_up_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_up1.gif");
loadimage(&img_bar_down,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_down2.gif");
loadimage(&img_bar_down_1,"E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\bar_down1.gif");//bird position
bird_x = 100;
bird_y= 200;//bar position
bar_x = 250;
bar_up_y= -380;
bar_down_y= 350;//control bird step
bird_fly_step = 40;
bird_down_step= 13;
BeginBatchDraw();//play background music - repeat
mciSendString("open E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\background.mp3 alias bkmusic",NULL,0,NULL);
mciSendString("play bkmusic repeat", NULL,0,NULL);
score= 0;
}void show() { //show windows
putimage(0,0,&img_bk); //show background picture
putimage(bird_x,bird_y,&img_bird_1,NOTSRCERASE); //show bird
putimage(bird_x,bird_y,&img_bird,SRCINVERT);
putimage(bar_x,bar_up_y,&img_bar_up_1,NOTSRCERASE); //show bar up
putimage(bar_x,bar_up_y,&img_bar_up,SRCINVERT);
putimage(bar_x,bar_down_y,&img_bar_down_1,NOTSRCERASE); //show bar down
putimage(bar_x,bar_down_y,&img_bar_down,SRCINVERT);
FlushBatchDraw();
}voidupdateWithoutInput() {if(bird_y
bird_y+=bird_down_step;if(bird_x==bar_x) {if(bird_y>bar_down_y-140 && bird_y
score++;else exit(0);
}if(bar_x>0) //move bar
bar_x-=13;else{
bar_x= width; //new bar
int randPosition = rand() % (high-50);
bar_up_y= randPosition - 670;
bar_down_y= randPosition + 70;
}
Sleep(150);
}voidupdateWithInput() {charinput;if(kbhit()) { //runing while user push keyboard
input =getch();if(input == ' ' && bird_y>20) //control bird move up
{
bird_y= bird_y -bird_fly_step;//bird fly with music
mciSendString("close jpmusic",NULL,0,NULL);
mciSendString("open E:\\C程序练习\\project\\flightwar\\flappybird\\picture\\Jump.mp3 alias jpmusic",NULL,0,NULL);
mciSendString("play jpmusic",NULL,0,NULL);
}
}
}voidgameover()
{
EndBatchDraw();//end batch picture
getch();
closegraph();//close graph
}intmain() {
startup();//init data
while(1) { //game loop run
show(); //show windows
updateWithoutInput(); //update don't need user
updateWithInput(); //update need user
}
gameover();return 0;
}