PHP網頁遊戲學習之Xnova(ogame)源碼解讀(十四)_php執行個體

來源:互聯網
上載者:User

十七、資源更新(PlanetResourceUpdate.php頁面)

前面基本把重要的功能講解完了,這章節我們分析重要的一個函數PlanetResourceUpdate,主要功能是更新資源、製造船艦和防禦單位;代碼很有條理,下面是詳細的說明:

1.計算星球的最大儲存空間,包括系統設定的浮動值
2.計算星球三種資源的產量和能量消耗總量,包括專家的加成
3.如果星球是月球,以上計算的產量和能量直接為0
4.計算上次更新資源到現在的時間
5.計算由於能量比率而引起的產量變化,能量為0的時候,只有基本產量
6.接下來要判斷是否假期了,不是假期的話,根據前面準備好的資料,計算出這段時間內的產量,並加到現有的資源裡面
7.取得這段時間應該完成的船艦和防禦數量,函數HandleElementBuildingQueue
8.構造SQL語句,提交給伺服器,資源更新完成

這個函數在玩家每次點擊每個功能的時候執行,給玩家的感覺好像資源是早計算好了一樣,呵呵。不過在一些版本裡面,當一個玩家長期不登入的時候,這個玩家的資源也就不能更新了;這個時候,需要處理這個玩家的資源更新,具體更新方法可以隨便,我使用的是每次間諜探測時更新。

下面講解下函數HandleElementBuildingQueue,邏輯不複雜,還是很容易理解的。
這裡要記住: b_hangar_id是要建造的字串,b_hangar是上次保持的建造時間

說明下:

1.先判斷是否有建造隊列
2.取得經過的時間並加上保持的時間
3.解析建造隊列,儲存在數組裡面備用
4.下面foreach就是一個一個的建造了
5.最後如果有未造完的保持起來下次建造,並返回

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.