PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十三)
十六、造船和防御(FleetBuildingPage.php與DefensesBuildingPage.php頁面)
先說造船廠頁面,其實(shí)這個(gè)頁面中并沒有真正的造船,只是把要造的船和數(shù)量保存到數(shù)據(jù)庫中;產(chǎn)生船艦的代碼在另外一個(gè)函數(shù)里面。下面我們開始分析這個(gè)頁面,并且也按照前面的思路,先講解構(gòu)造頁面的代碼。
首先判斷本星球是否已有造船廠,沒有當(dāng)然要提示。
下面使用循環(huán)語句,構(gòu)造出每種船艦的建造頁面,這段代碼我覺得不需要再詳細(xì)講解了。
接下來是要顯示正在制造的船艦列表,要腳本動(dòng)態(tài)顯示,實(shí)際上是假像;即使顯示有船艦造好了,如果不是刷新,數(shù)據(jù)庫里面并不會(huì)有。注意這里有兩個(gè)重要的字段:b_hangar_id保存著要造的船列表;b_hangar保存著上次更新后剩下的時(shí)間,單位是秒。
使用函數(shù)ElementBuildListBox(),構(gòu)造出一個(gè)正在造船的腳本,函數(shù)代碼大家自己看,不難,只要理解了前面我說的兩個(gè)字段就可以了。
最后輸出造船廠頁面。
現(xiàn)在我們又回到前面,玩家輸入要制造的船艦的數(shù)量,進(jìn)入這段代碼。
1.取得要制造的船艦代碼和數(shù)量
2.判斷制造的數(shù)量是否超過允許的最大值,超過則取最大值
3.如果制造數(shù)量不為零,判斷是否允許制造
4.然后取得當(dāng)前資源能制造的最大值
5.設(shè)置資源消耗和時(shí)間消耗
6.最后更新星球數(shù)據(jù),包括減少資源和建造船艦的字段b_hangar_id,貼出代碼如下:
if ($Count >= 1) {
$CurrentPlanet['metal'] -= $Ressource['metal'];
$CurrentPlanet['crystal'] -= $Ressource['crystal'];
$CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
$CurrentPlanet['b_hangar_id'].= "". $Element .",". $Count .";";
}
造船廠頁面完成了,下面我們來看防御頁面。這個(gè)頁面基本邏輯和造船廠一樣,這里就不寫了。不同的是多一些邏輯限制,羅列出來如下:
1.在構(gòu)造防御單位頁面的時(shí)候,代碼407和408是大小防御護(hù)盾,要注意只能有一個(gè)
2.在玩家輸入數(shù)量后的制造代碼里面,代碼502和503是攔截導(dǎo)彈和星際導(dǎo)彈,要注意兩個(gè)導(dǎo)彈的數(shù)量關(guān)系和正在制造列表里面的導(dǎo)彈數(shù)量
3.同樣使用字段b_hangar_id保存
造船和防御頁面簡單的講解完了,最重要的制造代碼在另外一個(gè)函數(shù)里面,下一章節(jié)分析。
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十五)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十四)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十二)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十一)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(九)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(八)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(一)
- PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十六)
相關(guān)文章
基于PHP生成靜態(tài)頁的實(shí)現(xiàn)方法
本篇文章是對PHP生成靜態(tài)頁的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05
PHP7.1中使用openssl替換mcrypt的實(shí)例詳解
這篇文章主要介紹了PHP7.1中使用openssl替換mcrypt的實(shí)例詳解,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
在thinkphp5.0路徑中實(shí)現(xiàn)去除index.php的方式
今天小編就為大家分享一篇在thinkphp5.0路徑中實(shí)現(xiàn)去除index.php的方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
php使用shmop函數(shù)創(chuàng)建共享內(nèi)存減少負(fù)載的方法
這篇文章主要介紹了php使用shmop函數(shù)創(chuàng)建共享內(nèi)存減少負(fù)載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展實(shí)例分析
這篇文章主要介紹了Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展,結(jié)合實(shí)例形式分析了Thinkphp 框架驅(qū)動(dòng)擴(kuò)展相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
Laravel框架FormRequest中重寫錯(cuò)誤處理的方法
這篇文章主要介紹了Laravel框架FormRequest中重寫錯(cuò)誤處理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
Zend Framework實(shí)現(xiàn)自定義過濾器的方法
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)自定義過濾器的方法,結(jié)合實(shí)例形式分析了Zend Framework自定義過濾器的簡單定義與使用方法,需要的朋友可以參考下2016-12-12

