資源描述:
《拍飛蟲實(shí)習(xí)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、中國(guó)石油大學(xué)(華東)程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告[拍飛蟲]專業(yè)班級(jí):實(shí)習(xí)時(shí)間:7月3號(hào)-7月6號(hào)實(shí)習(xí)地點(diǎn):文理樓110組長(zhǎng):組員:游戲截圖圖一:開始游戲圖二:開始打飛蟲圖三:打中紅色飛蟲扣五分圖四:一局游戲結(jié)束,按空格繼續(xù)游戲功能描述拍飛蟲游戲是玩家用鼠標(biāo)控制拍子,拍飛蟲。飛蟲每次從不同的位置、以不同的速度飛來飛去。玩家拍的飛蟲越多,分?jǐn)?shù)越高。1.游戲運(yùn)行,界面出現(xiàn)“空格開始”的提示框。2.按下空格鍵,游戲開始,玩家移動(dòng)鼠標(biāo)控制拍子移動(dòng);點(diǎn)擊鼠標(biāo)左鍵,用拍子拍飛蟲。3.每局游戲時(shí)間為30秒。游戲開始時(shí),在屏幕左上角顯示開局時(shí)間,并隨
2、著游戲進(jìn)行,實(shí)時(shí)顯示游戲剩余時(shí)間。4.有3種飛蟲,大飛蟲、小飛蟲和紅色飛蟲,拍到大飛蟲得1分,拍到小飛蟲得2分,拍到紅色飛蟲扣5分。分?jǐn)?shù)實(shí)時(shí)顯示在屏幕左上角。5.飛蟲從各個(gè)方向,以隨機(jī)速度在屏幕中穿梭。游戲過程當(dāng)中,始終有飛蟲讓玩家拍打。6.游戲時(shí)間到后,游戲停止,重新顯示初始界面。7.記錄最高的5次游戲得分,按從大到小的順序排列,顯示在底部。8.玩家按空格可以繼續(xù)游戲,如此往復(fù)。流程圖數(shù)據(jù)結(jié)構(gòu)1)g_iGameScore保存游戲獲得的分?jǐn)?shù)。2)g_fGameTime記錄游戲的時(shí)間。3)FlyBug用一個(gè)結(jié)構(gòu)體來存放飛蟲
3、的名字和分?jǐn)?shù)。4)iHighScore[5]用一個(gè)int型數(shù)組來存放每局游戲的分?jǐn)?shù)。5)g_bStart用于判斷游戲是否開始。6)g_fOldRotation拍子拍打角度。7)g_fRotateTime用于計(jì)算拍子拍打一次使用時(shí)間。8)g_ihuihe用于計(jì)量所進(jìn)行的游戲的回合數(shù)。9)g_fScreenLeft左邊界值。10)g_fScreenRight右邊界值。11)g_fScreenTop上邊界值。12)g_fScreenBottom下邊界值。13)g_iCount,i,j計(jì)量變量。14)szName[128]用于給
4、飛蟲命名的字符串。15)iScore計(jì)量飛蟲所帶的分?jǐn)?shù)。16)fPosX拍子的X方向的位置。17)fPosY拍子的Y方向的位置。算法描述有14只蚊子,存儲(chǔ)在FlyBug結(jié)構(gòu)體中,每一只蚊子都有對(duì)應(yīng)的名字和分?jǐn)?shù)。g_bStart控制游戲的開始和結(jié)束,true的時(shí)候開始,false的時(shí)候結(jié)束。按下空格鍵,g_bStart由false變?yōu)閠rue,游戲開始,倒計(jì)時(shí)開始計(jì)時(shí)30秒,warning和kaishi精靈消失,AddFlyBugs添加飛蟲精靈,飛蟲精靈添加后通過克隆三種模板精靈的運(yùn)動(dòng)使用自己定義的flying函數(shù)使蚊子自
5、由飛舞。游戲開始,鼠標(biāo)消失,拍子捕捉鼠標(biāo)位置跟隨其運(yùn)動(dòng),并改變其角度,然后通過給定函數(shù)的改變拍子的角度來實(shí)現(xiàn)拍子拍打的動(dòng)畫。當(dāng)蚊子的坐標(biāo)在拍子的坐標(biāo)周圍的時(shí)候,g_iGameScore變量進(jìn)行計(jì)分,小飛蟲2分,大飛蟲1分,紅色飛蟲-5分。在時(shí)間到的時(shí)候飛蟲精靈消失,kaishi精靈出現(xiàn),分?jǐn)?shù)被送至iHighScore[5]進(jìn)行排序。當(dāng)一局所得分?jǐn)?shù)高于iHighScore[4]時(shí),就將其賦值到iHighScore[4],并將iHighScore數(shù)組中的數(shù)據(jù)進(jìn)行冒泡法排序。當(dāng)再次按下空格鍵時(shí),倒計(jì)時(shí)從30秒開始,計(jì)分清零,回
6、合數(shù)增加,又進(jìn)行下一輪的游戲。再進(jìn)行游戲調(diào)試的時(shí)候遇到多個(gè)bug,我組成員都將其一一修復(fù)。開始時(shí),按下空格鍵開始,接著按空格鍵游戲又將重頭開始,于是添加了一個(gè)對(duì)g_bStart的判斷,保證了他們不會(huì)在游戲進(jìn)行中初始化。在完成題目上給的要求的基礎(chǔ)上,我們?yōu)榱朔乐褂腥烁呐淖拥拇笮碜鞅?,于是添加了紅色飛蟲進(jìn)行扣分,增加了難度。源代碼#include"CommonAPI.h"#include"stdio.h"#include"string.h"boolg_bStart=false;intg_iGameScore=0;floa
7、tg_fGameTime=0;floatg_fOldRotation=0.f;floatg_fRotateTime=0.f;intg_ihuihe=0;floatg_fScreenLeft=0.f;//屏幕左邊界值floatg_fScreenRight=0.f;//右floatg_fScreenTop=0.f;//上floatg_fScreenBottom=0.f;//下intg_iCount=0;intiHighScore[5]={0,0,0,0,0};charszName[128];inti;structFlyBug
8、{charszName[128];//飛蟲名字intiScore;//分?jǐn)?shù)值}FlyBugs[15];voidAddFlyBugs(){sprintf(FlyBugs[g_iCount].szName,"feichong_%d",g_iCount);FlyBugs[g_iCount].iScore=1;g_iCoun