所有遊戲資料都需要封裝到實際的變數中。整個遊戲,就是用類gamemap表示的。
成員函式功能列表:
class gamemap
;所有的資料都儲存到一系列全域性變數中:
//所有選單文字
char *ppretext=;
//所有動態元素的寬 高
int mapani[2][10]=,,};
//所有地圖物品的寬 高
int mapsolid[2][13]=,
};//所有背景物品的寬 高
int mapanibk[2][4]=,,};
//旋風的寬 高
int mapanimagic[2][1]=,
};//所有地圖資訊
struct mapinfo allmapinfo=,,,
,};//普通蘑菇兵模板
struct role gl_enemy_normal=
;//跟蹤列印
//filereport f1;
//計時器
myclock c1;
//遊戲全部邏輯
gamemap gamemap;
//各種
mybitmap bmpre; //選單背景,通關,gameover
mybksky bmsky; //天空背景
myaniobj bmmap; //地圖物品
myaniobj bmmapbkobj; //地圖背景物品
myaniobj bmaniobj; //所有動態元素
myrole rmain; //玩家角色
myanimagic bmmagic; //旋風
//字型管理
myfont myfont; //字型
//dc控制代碼
hdc hwindow,hscreen,hmem,hmem2;//視窗dc, 地圖dc, 臨時dc,臨時dc2
//空位圖
hbitmap hmapnull;
//視窗大小
int wwin,hwin;//顯示器螢幕寬 高
int wwingame,hwingame; //當前視窗寬 高
hwnd hwndmain; //視窗控制代碼
所有功能都分別介紹過了。再講選單控制和視窗縮放,且聽下回分解。
超級瑪麗製作揭秘3 遊戲背景類MYBKSKY
類說明 這是乙個專門處理遊戲背景的類。在橫版遊戲或射擊遊戲中,都有乙個背景畫面,如山 天空 雲 星空等等。這些一般只有1到2倍螢幕寬度,然後像乙個卷軸一樣迴圈移動,連成一片,感覺上像一張很長的。這個類就是專門處理這個背景的。在超級瑪麗增強版中,主要關卡是3關,各有一張背景 從水管進去,有兩關,都用一...
超級瑪麗製作揭秘5魔法攻擊 類MYANIMAGIC
類說明 玩家有兩種攻擊方式 普通攻擊 子彈 魔法攻擊 旋風 這個類是專門處理旋風的。我最初的想法是用一些特殊的bitblt方法製造特效,例如或 與 異或。試了幾次,都失敗了。最後只能用 先與後或 的老方法。這個類可看成myaniobj的乙個簡化版,只支援不規則的顯示。成員函式功能列表 class m...
《超級瑪麗》3
第三階段 目標 實現水平方向和豎直方向上的碰撞,更具有真實感。1 要想解決水平方向的碰撞,就要先明白乙個問題,地圖上的哪些東西是不能夠穿過的,也就是說要先定義好地圖上的某些可供碰撞檢測的物體磚塊型別。如圖 水平檢測函式的開頭準備工作 為了簡化水平方向的檢測,因為馬里奧的錨點是中心位置,所以左右兩邊的...