一些遊戲中離線獲得收益是非常常見的,一般的離線收益都是乙個屬性,比如是經驗;都是按照離線時間*速度來計算的,並且這個速度一般為固定值,即:離線過程中速度不會變化。這個需求就很簡單,不在贅述。
比如練一本技能書的等級:
① 1s漲一點經驗,6s消耗一點精神,精神為0自動停止。
② 經驗到一定值會公升級技能書,技能書到一定等級會領悟技能或者提公升其他屬性。
③ 消耗精神的總值到達一定值,會提公升屬性x,屬性x每提公升一點會增加10點精神,且精神會恢復至最大值。
④ 其他buff會影響提公升經驗的速度。
⑤ 加入自動服藥功能(精神少於一定數值會自動恢復一定的數值)
等等。。
直接當做buff一把梭,即可;
為了維護方便,這裡拆分為2個buff
① 技能書漲經驗公升級
② 精神總消耗
buff②的生命週期和buff①繫結。
buff系統驅動每個buff,具體buff內部怎麼實現就不贅述了。
//驅動buff的是系統的時間軸
buffmanger.update()->buff.update()
① 抽象公式法:
按照以上需求,我無法通過列出公式使用離線時間計算出對應的收益和消耗。(你們也許可以)
即使可以列出公式,但是隨著後期功能的持續加入,維護起來怎麼樣,我就想了下感覺很可怕,腦子不夠用。
pass
通俗來講就是伺服器裡的玩家例項永遠不下線,那不可能。
pass
③ 上線後加速模擬法:
就是上線後根據離線時間,來加速模擬直至追上伺服器真實的時間。
我直接選擇第3種,就是因為邏輯簡單。
enum state
class buffmanager
state=正常;
}pubilc void update()
public void logicupdate(long time)
}
設計模式之單例設計模式 最初
設計模式之單例設計模式 最初版 a 解決的問題 建立唯一乙個物件 使建立的物件具有唯一性 b 設計思路 i.只要建構函式是public修飾,就能被其他程式呼叫建立任意多個物件 用private修飾建構函式 ii.唯一存在的物件怎麼出現?直接在本類中new出來 iii.在本類new出來之後怎麼提供給外...
Hybrid設計 離線更新
首先server端和前端做乙個增量發布系統 1 就是把乙個增量包發布到乙個版本的native上去,讓他做更新。2 後台對這個增量包的到達率或者成功的更新做乙個統計。這是比較複雜的。離線更新的機制 瀏覽器或native去訪問乙個鏈結,就會直接訪問。如果有靜態資源的話,native就會直接讀取,而瀏覽器...
系統設計 許可權模型設計
該許可權資料模型設計依據spring security框架,針對賬號 角色 許可權 資源 模組 選單 等物件做了簡單設計 指系統登陸賬號,系統使用者物件身份標識。只使用者的身份象徵標識,乙個登陸賬號,可同時擁有多個系統使用角色 身份 比如在網購 當中,使用者同時擁有a資源管理員角色 b資源管理員角色...