PHP網頁遊戲學習之Xnova(ogame)源碼解讀(十三)_PHP教程

來源:互聯網
上載者:User
十六、造船和防禦(FleetBuildingPage.php與DefensesBuildingPage.php頁面)

先說造船廠頁面,其實這個頁面中並沒有真正的造船,只是把要造的船和數量儲存到資料庫中;產生船艦的代碼在另外一個函數裡面。下面我們開始分析這個頁面,並且也按照前面的思路,先講解構造頁面的代碼。

首先判斷本星球是否已有造船廠,沒有當然要提示。

下面使用迴圈語句,構造出每種船艦的建造頁面,這段代碼我覺得不需要再詳細講解了。

接下來是要顯示正在製造的船艦列表,要指令碼動態顯示,實際上是假像;即使顯示有船艦造好了,如果不是重新整理,資料庫裡面並不會有。注意這裡有兩個重要的欄位:b_hangar_id儲存著要造的船列表;b_hangar儲存著上次更新後剩下的時間,單位是秒。

使用函數ElementBuildListBox(),構造出一個正在造船的指令碼,函數代碼大家自己看,不難,只要理解了前面我說的兩個欄位就可以了。

最後輸出造船廠頁面。

現在我們又回到前面,玩家輸入要製造的船艦的數量,進入這段代碼。

1.取得要製造的船艦代碼和數量
2.判斷製造的數量是否超過允許的最大值,超過則取最大值
3.如果製造數量不為零,判斷是否允許製造
4.然後取得當前資源能製造的最大值
5.設定資源消耗和時間消耗
6.最後更新星球資料,包括減少資源和建造船艦的欄位b_hangar_id,貼出代碼如下:

if ($Count >= 1) { $CurrentPlanet['metal'] -= $Ressource['metal']; $CurrentPlanet['crystal'] -= $Ressource['crystal']; $CurrentPlanet['deuterium'] -= $Ressource['deuterium']; $CurrentPlanet['b_hangar_id'].= "". $Element .",". $Count .";";}

造船廠頁面完成了,下面我們來看防禦頁面。這個頁面基本邏輯和造船廠一樣,這裡就不寫了。不同的是多一些邏輯限制,羅列出來如下:

1.在構造防禦單位頁面的時候,代碼407和408是大小防禦護盾,要注意只能有一個
2.在玩家輸入數量後的製造代碼裡面,代碼502和503是攔截飛彈和星際飛彈,要注意兩個飛彈的數量關係和正在製造列表裡面的飛彈數量
3.同樣使用欄位b_hangar_id儲存

造船和防禦頁面簡單的講解完了,最重要的製造代碼在另外一個函數裡面,下一章節分析。

http://www.bkjia.com/PHPjc/824767.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/824767.htmlTechArticle十六、造船和防禦(FleetBuildingPage.php與DefensesBuildingPage.php頁面) 先說造船廠頁面,其實這個頁面中並沒有真正的造船,只是把要造的船和數...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.