基於建造者模式編寫的坦克大戰遊戲

2021-10-05 18:58:08 字數 1430 閱讀 1119

引數設定

場景一

場景二

idea+gradle+jdk1.8
建造者模式

碼雲-tank_rebuild

本次坦克大戰遊戲使用了建造者模式,對於tank類來說這是乙個複雜的類物件,採用建造者模式將複雜的tank類進行劃分,劃分出來的子部件各自負責各自相應的功能互不干擾,這樣就減少了耦合,tank分為tankframe、pt、engine、explode、missile、guard。tank類由上面幾個部件構成。另外還有wall、skill、direction_。enemybuilder、tankbuilder、wallbuilder是建造者類。enemybuilder和tankbuilder繼承了tankdecorator類。projector實現場景規劃,customize和windows是介面展示。類功能

tankframe

控制坦克的顏色、高度和寬度

pt這是坦克的炮筒,負責控制坦克發射子彈的方向

engine

坦克的發動機,負責控制坦克的位置,其中由move方法根據鍵盤控制坦克移動,movee()方法根據場地環境隨機移動。

missile

炮彈類依賴於tank類、wall類,通過move方法來控制子彈移動

guard

坦克的護甲,屬性life值表示坦克的血量當life小於等於0時坦克死亡。

wall

牆體,控制牆的位置、高、寬和顏色。

skill

技能類,依賴於tank類,可以向八個方向發射子彈。

direction_

方向類,其中僅含有乙個列舉型別的屬性

tankdecrator

這是抽象的坦克建造者,關聯了tank和enemytank類

tankbuilder

繼承了tankdecrator,用於構造我方坦克

enemytankbuilder

繼承了tankdecrator,用於建造敵方坦克

wallbuilder

含有很多wall例項物件作為其實例,用於構建場景中需要的牆體

projector

聚合和多個建造者例項用於控制場景構建

customize

使用者關卡設定介面

windows

遊戲介面

helloworld_ee

大戰設計模式 17 建造者模式

設計模式使用的例子 將乙個複雜物件的構建與它的表示相分離,使得同樣的構建過程可以建立不同的表示。builder 抽象建造者 為建立乙個產品物件的各個部件指定抽象介面,在其介面中一般包含兩類方法 一類是buildpartx 用於建立複雜物件的各個部件 另一類是getresult 用於返回生成好的複雜物...

基於C 實現的經典坦克大戰遊戲

這戰車大戰就是指紅白機的戰車大戰,操縱戰車,將敵人通通轟掉,完成這個關卡。小時後完紅白機時,不能輸人金手指,沒辦法自由控制遊戲,現在剛好有這個oop專題機會,我們就仿製乙個戰車大戰,自己可以完全控制程式碼,做到比輸人金手指更完整的控制。程式使用 dev c 編譯器進行開發。一剛開始,我們思考這遊戲的...

基於C 實現的經典坦克大戰遊戲

1 題目描述 這戰車大戰就是指紅白機的戰車大戰,操縱戰車,將敵人通通轟掉,完成這個關卡。小時後完紅白機時,不能輸人金手指,沒辦法自由控制遊戲,現在剛好有這個oop專題機會,我們就仿製乙個戰車大戰,自己可以完全控制程式碼,做到比輸人金手指更完整的控制。程式使用 dev c 編譯器進行開發。2 系統架構...