好久沒有寫blog了!
最近決定多寫寫,把自己的經驗多給大家分享!
state模式的定義:
不同的狀態,不同的行為;或者說,每個狀態有著相應的行為.
我舉個遊戲應用的例子吧!mmo中,遊戲世界可以分為(登陸時前,進入遊戲中,進入遊戲後)3個狀態(我打的比喻)
首先 抽象狀態的基類
class game;
class state
public:
/// 狀態執行
virtual void handle(game* game) = 0;
/// 狀態切換
virtual void nextstate(game* game) = 0;
然後處理具體的狀態
class loginstate : public state
public:
void handle(game* game) {
game->loginhandle();
void nextstate(game* game) {
// 根據不同的情況
// 更改mstate
class loginingstate: public state
public:
void handle(game* game) {
game->loadinghandle();
void nextstate(game* game) {
// 根據不同的情況
// 更改mstate
class gamestate: public state
public:
void handle(game* game) {
game->gamehandle();
void nextstate(game* game) {
// 根據不同的情況
// 更改mstate
我們定義遊戲的管理類
class game
private:
state* mstate;
public:
virtual void loginhandle(){
virtual void loadinghandle(){
virtual void gamehandle(){
public:
// 狀態改變
void nextstate(){
mstate->nextstate(this);
// 排程
void handle(){
mstate->handle(this);
設計模式在遊戲中的應用 簡單工廠模式(一)
自己作為乙個剛畢業的菜鳥,有幸能夠和牛人們一起工作很開心。當時策劃提出乙個需求,需要針對每個職業進行不同的能量恢復。我當時接到這個需求,心中暗喜,這還不簡單,把每個職業的恢復率放到乙個陣列裡面,然後接著各種if.else.當時還為這種能在陣列裡面直接修改資料,讓資料和邏輯分離開來感到開心。接著策劃提...
設計模式在遊戲中的應用 建造者模式(九)
建造者模式 builder pattern 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式是一種物件建立型模式。通過這個定義,我們可以得出建造者是一種建立型模式,也就是說建造者模式的輸出是乙個物件,也就是uml類圖中的product。我們先看看建造者模式的uml...
遊戲中的設計模式 工廠模式
現在的網遊更新很快,要延長網路遊戲生命週期的方法是,更新,不斷地更新,不斷的將新內容呈現於玩家面前。這要求遊戲程式的設計要有彈性,的重用至關重要。今天就說說遊戲中的工廠模式。說到工廠模式,有簡單工廠模式,工廠方法模式,抽象工廠模式。一 簡單工廠模式 ps 物件導向的程式設計,並不是類越多越好,類的劃...