掛機的設計思路是,先設置開始掛機時間,當結束掛機的時候用當前時間減去開始掛機時間,然後根據獎勵公式,計算出獎勵即可。
這裏的獎勵公式指的是,每隔多少時間獲得多少獎勵,這裏可以使用比如
高斯曲線 貝塞爾曲線,或者直接一條斜線(獎勵 = k*t) 隨意。
時間一般分爲遊戲時間和現實實現,我這裏建議用現實時間進行計算
當用戶觸發掛機操作的時候,把當前時間和用戶id存入數據庫,然後當用戶領取獎勵的時候。進行獎勵結算。
Long s = Long.valueOf(0);//定義一個時間差值
Date now = new Date();//獲取當前時間
//讀取該生物開始掛機的時間 並轉化爲毫秒
//計算差值
s = (now.getTime() - 開始掛機時間/ 1000;
可以把毫秒轉化成分或小時
比如 s/60/60(小時)
通過上面代碼獲得的時間差值,可以帶入獎勵公式,比如一條斜線的公式,每個小時獎勵金幣5個,則
reward = 5*(s/60/60)
最終用戶會獲得 reward個 金幣的獎勵,這裏金幣 替換成其他的比如 經驗值 都是同理。