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