QT C 遊戲之坦克大戰(二)

2021-09-09 06:34:24 字數 1530 閱讀 1996

上篇部落格講了整體的乙個框架,這次來說一下介面設計,地圖的實現,以及玩家坦克的移動。

根據從手機上獲取的截圖,自己在根據一定的比率換算,最終確定了整個介面的大小為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導致自己沒查出來光在邏輯 裡面找錯誤,鑽進了牛角尖就再沒出來 看著這紅色的報錯,我心態崩了啊 就當我想要重寫時,突然意識看到左側的專案欄就想到路徑是不是對的,這一查都人都傻...