上篇部落格講了整體的乙個框架,這次來說一下介面設計,地圖的實現,以及玩家坦克的移動。
根據從手機上獲取的截圖,自己在根據一定的比率換算,最終確定了整個介面的大小為1280x960。整個介面如果按大塊來算的話是13x13的規格。其他的相關引數見表(這些引數是經歷過好幾次修改,最終確定下來的,費了不少的時間,建議選取2的倍數的規格):
巨集定義說明
size_width 1280
整個介面的寬度
size_height 960
整個介面的高度
border_left 75
左邊距border_up 45
上邊距cell_width 10
地圖中最小單元的寬度
cell_height 8
地圖中最小單元的高度
cell_number 104
地圖的大小,橫(列)數
bullte_width 10
子彈的寬度
bullte_height 16
子彈的高度
設計圖:
;裡面的資料成員和成員函式都是靜態的,靜態是為了實現資料共享。static char *m_map是乙個靜態指標型別,用來申請記憶體,其他成員函式都是對這塊記憶體進行讀寫操作。
地圖中各物體的標識:
標識說明
標識說明0空白
1普通敵人b基地
2速度快敵人i鋼鐵
3子彈快敵人
w牆壁l
4buff敵人
v牆壁r
5護甲敵人g草地
6暫無r河流
7暫無p玩家18暫無
q玩家29暫無
如圖·,簡單明瞭:
//畫地圖
for(
int y =
0; y < cell_number; y +=1)}}
qt(c++)遊戲之坦克大戰(三):
qt(c++)遊戲之坦克大戰(一):
C 遊戲《坦克大戰》 坦克
這裡的各種型別,使用struct而不是enum,避免後面強制轉換。子彈資訊 public struct t bulletinfo 坦克型別 public struct t type 坦克行動方向 public struct t dir 公共引數 public struct t commpar 設計框...
Kotlin 坦克大戰10 遊戲結束
銷毀後顯示特效,所以在destroyable中增加乙個showdestroy 方法 inte ce destroyable view 爆照效果 camp中重寫這個方法 override funshowdestroy array 遊戲結束有兩張情況,第一種是大本營銷毀,另一種是敵人被打敗 class ...
經典坦克大戰再現(二)
不好意思我承認我鴿了一天,這一切都是因為我這不爭氣的眼鏡,它該換眼鏡了。昨天調了快一下午的 就是因為獲取的時候路徑裡面少敲了個s導致自己沒查出來光在邏輯 裡面找錯誤,鑽進了牛角尖就再沒出來 看著這紅色的報錯,我心態崩了啊 就當我想要重寫時,突然意識看到左側的專案欄就想到路徑是不是對的,這一查都人都傻...