畢設專案(三)玩家BUFF管理

2021-10-06 06:25:23 字數 1383 閱讀 1345

將buff設定成乙個結構體(或者設定成乙個單獨的類),buff結構體中包含以下內容:

(1)buff型別:int:本遊戲中共設定了4種buff,1-移速,2-攻速,3-防禦,4-攻擊。

(3)buff值:float:buff加強的值,不同型別對該值的應用方法不同,比如:移速型別buff為:speed = speed * buffvalue

(4)各類介面,用於修改獲取屬性,計時。

struct buff 

public void setbufftype(int bufftype)//設定buff型別

public void setbufftime(float bufftime)//設定buff時間

public void setbuffvalue(float buffvalue)

//獲取buff資訊

public int getbufftype()

public float getbufftime()

public float getbuffvalue()

}

由於玩家身上的buff是乙個不確定的屬性,數量也不確定,所以在buff管理的類中設定乙個鍊錶。新增buff的方法只需要三步:(1)初始化buff(2)根據buff值加強玩家屬性(3)將buff加入到buff鍊錶中。

/*buff分類

* 1:移速

* 2:攻速

* 3:防禦

* 4:攻擊

* */

void addbuff(buff b)

//清除buff

void clearbuff(buff b)

else if (b.getbufftype() == 2)//攻速buff

else if (b.getbufftype() == 3)//攻擊buff

else if (b.getbufftype() == 4)

}

//攻速提高

public void attackspeedup(float a, float time)

在buff管理的類其update方法中,每一幀(或跨幀)更新buff的狀態。

(1)當buff鍊錶不為空時進行迴圈

(2)每個buff計時器更新,如果有buff計時器值小於0,則根據該buff型別及值恢復玩家屬性,從buff鍊錶移除該buff

//buff處理

linkedlistnodebuffnode = bufflist.first;

buff b;

while (buffnode!=null)

else

}

畢設開發手記(三)

這是開始做核心演算法的第二天,主要實現sting層次聚類演算法。這演算法單獨實現倒簡單,可畢設要求的是文字聚類,要從文字 預處理 vsm表示 計算權值 成為可以由sting使用的資料。每篇文字中的詞都是不定的,文章數也是不定的。要用vsm表示文字,很有難度,在國外 上找到了個vsm例子 也就是說,如...

畢設今日總結(三)

今天 明天 還是有點不太明白cvcalcpca是怎麼用的,pca建構函式又是幹嗎用的。數學不好的我表示原理神馬的根本沒看懂o 口 o,寫 的時候再說吧。void pca project inputarrayvec,outputarrayresult const pca pca inputarrayd...

做畢設(十) 後台管理

進行已發布新聞的管理 action edit getnews type submit value 爬取新聞並審核 form action edit switch th if type submit value 切換為已發布新聞 th if type submit value 切換為待審核新聞 for...