遊戲中的設計模式之抽象工廠模式

2021-06-07 13:10:15 字數 1511 閱讀 9587

遊戲中需要用到抽象工廠的地方很多,比如:你想得到乙個怪物monster,而我們在遊戲中可能會出現幾十種怪物,而且每種怪物都有自己特有技能,如:大蛇可以發射毒液使你減速,熊會有重擊技能可以將你打暈,老虎會有暴擊技能等等。而怎樣將這些怪初始化並能夠與遊戲中的人物聯絡起來,這地方使用抽象工廠可以解決這些問題。

在抽象工廠中需要我們多用物件組合,少用繼承,針對抽象程式設計,不針對實現程式設計,物件通過工廠暴露的方法建立。

下面我們舉例解釋抽象工廠在遊戲中的運用:

1.我們建立乙個所有怪物的父類,我們叫他獸王(也許獸王應該是所有怪物的boss的,但是我感覺還是先有獸王才會產生其他怪獸小弟的),給它個英文名basemonster,好了,我們的獸王有了,獸王都有什麼呢?名字,技能,血量等等,我們先用這三個吧。

class abstract basemonster 2.

所有的怪物需要做一些共同的操作,我們可以用介面來實現這些操作,這裡我們只需要乙個方法print,輸出當前的怪物的名字。

public inte***ce ifmonster 3.

接下來我們就要實現每個種類的怪物的父類了。

所有蛇的父類snake

public class snake extends basemonster implements ifmonster }

所以熊的父類bear

public class bear extends basemonster implements ifmonster }

所有老虎的父類tiger

public class tiger extends basemonster implements ifmonster }

4.接下來我們就需要使用工廠類能夠產生各種怪,monste***ctory

public abstract class monste***ctory 5.

有了抽象工廠,那麼我們接下來就需要具體的怪了,比如眼鏡蛇,北極熊,東北虎

public class yjsnake extends snake }

public class bjbear extends bear }

public class dbtiger extends tiger }

6.有了這些具體的怪,我們就可以實現抽象怪工廠,產生具體工廠myfactory

public class myfactory extends monste***ctory

pulic bear createbear(int hp)

public tiger createtiger(int hp)

} 7.

我們需要乙個類來使用我們每個實現的類,hero

public class hero

public int hitsnake(int hp)

public int hitbear(int hp)

public int hittiger(int hp)

} 8.最後需要在main裡面呼叫hero就可以了

void main()

以上**僅供參考。

遊戲中的設計模式 工廠模式

現在的網遊更新很快,要延長網路遊戲生命週期的方法是,更新,不斷地更新,不斷的將新內容呈現於玩家面前。這要求遊戲程式的設計要有彈性,的重用至關重要。今天就說說遊戲中的工廠模式。說到工廠模式,有簡單工廠模式,工廠方法模式,抽象工廠模式。一 簡單工廠模式 ps 物件導向的程式設計,並不是類越多越好,類的劃...

抽象工廠模式 設計模式3之抽象工廠模式

工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...

設計模式之抽象工廠模式

目標 定義了乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。用於交換產品系列,如 access sql server 產品的具體類名被具體工廠的實現分離 下面是示例 include include include using namespace std 使用者抽象介面 class ius...