怎样做小游戏挖金子(VC,源码3)
說(shuō)明:整個(gè)工程文件已經(jīng)上傳至“下載頻道”,?名字是“挖金子VC版源碼”。不僅包括源代碼,還有圖形資源。最方便的是能直接編譯、運(yùn)行。
昨天講解了游戲開(kāi)始菜單的相關(guān)程序。今天開(kāi)始講游戲主邏輯。當(dāng)用戶點(diǎn)擊了“開(kāi)始”按鈕后,進(jìn)入游戲。需要做的工作是:加載地圖,游戲上方的叉子開(kāi)始擺動(dòng),同時(shí)檢測(cè)用戶按鍵,判斷是否抓到物品等等。待俺一一道來(lái)。
地圖信息包括:第幾關(guān),物品及其坐標(biāo),以前兩關(guān)的地圖數(shù)據(jù)為例:
*0
600
1 50 110
2 100 270
3 200 370
2 380 370
3 480 340
1 550 150
4 190 190
5 390 260
#
*1
1000
2 50 110
5 100 270
3 200 370
4 380 370
5 480 340
1 550 150
2 190 190
3 390 260
#
文件結(jié)構(gòu)為:每一關(guān)以*和#作為起始/結(jié)束標(biāo)志。*后面跟得是“第幾關(guān)”(從0開(kāi)始)。之后,是過(guò)關(guān)的金錢數(shù)量。再之后,每行表示一個(gè)物品,物品ID,橫坐標(biāo),縱坐標(biāo)。
物品ID從1開(kāi)始,1至5表示5種物品,對(duì)應(yīng)著大小不同的。這是一個(gè)設(shè)計(jì)的失誤,不應(yīng)該從1開(kāi)始,應(yīng)該從0開(kāi)始。因?yàn)閿?shù)組的下標(biāo)要從0開(kāi)始計(jì)算,有時(shí)候忘了減一,很久才能發(fā)現(xiàn)。這就是“代碼的可維護(hù)性”。?
struct?GAMEOBJECT{
????int?id;
????int?x;
????int?y;
};
class?GAMEMAP
{
public:
????//物品的ID,坐標(biāo)
????struct?GAMEOBJECT?objectarray[30]; ?? ?int iObjectNum;
如上所示,讀取地圖文件后,將所有物品的ID,坐標(biāo)放到這個(gè)數(shù)組中。
整個(gè)游戲的畫(huà)面就是,遍歷這個(gè)數(shù)組,按照物品ID,坐標(biāo),顯示對(duì)應(yīng)的圖片。代碼如下:
????????????????for(i=0;i<gmap.iObjectNum;i++)????????????????{
????????????????????if(gmap.objectarray[i].id<=0)
????????????????????{
????????????????????????continue;
????????????????????}
????????????????????bObject.ShowNoBack(gmap.objectarray[i].x,
????????????????????????????????gmap.objectarray[i].y,
????????????????????????????????gmap.objectarray[i].id-1);
????????????????
????????????????}
在游戲過(guò)程中,只要修改這個(gè)數(shù)組中的坐標(biāo)即可移動(dòng)物品,只要清除一個(gè)元素的ID,即可消除一個(gè)物品。
還要繪制畫(huà)面上方的圖案,土壤的圖案。上方的圖案是一個(gè)簡(jiǎn)單的圖片,土壤的圖片是一個(gè)64*64的位圖,循環(huán)排列而成。游戲中根據(jù)“第幾關(guān)”選擇不同的背景圖案來(lái)顯示。
????bMap.ShowCenter(0);//游戲上方的圖案
????bEarth.ShowLoop(0,80,GAMEWIDTH,GAMEHEIGHT,gmap.GetMatchNow());//土壤背景
畫(huà)面上方有三個(gè)文字信息:當(dāng)前金錢,目的金錢,剩余時(shí)間。都是簡(jiǎn)單的一個(gè)文本顯示TextOut。
以上介紹了地圖加載,物品的存儲(chǔ)數(shù)組。
游戲的主過(guò)程中,還有叉子的繪制、擺動(dòng)、伸縮,檢測(cè)是否抓到物品(包括物品移動(dòng)),檢測(cè)用戶按鍵,這些下回分解。大家可以直接在“CSDN下載頻道”下載源工程“挖金子VC版源碼”,其實(shí),了無(wú)秘密。
總結(jié)
以上是生活随笔為你收集整理的怎样做小游戏挖金子(VC,源码3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CompoundButton.OnChe
- 下一篇: 不能为属性:[commandName]找