效果圖:
monster一共宣告了4個函式,1個變數,分別介紹如下:
(1)show函式:由於怪物是不斷出現,然後不斷消失的(碰到主角就消失),為了避免頻繁「new」物件,怪物消失時只是暫時隱藏,而不進行銷毀,該函式用於顯示怪物。
(2)hide 函式 :如上所述,該函式用於隱藏怪物。
(3)reset函式:怪物從出現到碰撞玩家後消失,其間可能改變了一些屬性,該函式用於重置怪物屬性,恢復初始狀態,以便下次使用。
(4)isalive函式:判斷怪物是否在活動狀態(及呼叫了show函式,處於顯示狀態)。
如今怪物已經有了,怎麼讓它出現呢?我們要再寫乙個怪物管理器。
先建立乙個」管理器篩選器「,在這篩選器下再建乙個「怪物管理器篩選器」,如圖:
在怪物管理器篩選器下新建乙個類,命名為monstermanager,先來看看標頭檔案**:
怪物管理器就是用來建立怪物、判斷怪物什麼時候出現、什麼時候隱藏,再來看看monstermanager.cpp檔案:
目前monstermanager只做了一件事情,就是建立若干個怪物物件,儲存到列表中我們要介紹乙個新的類:ccarray。ccarray是cocos2d-x封裝的乙個類,使用列表的方式存放一組物件,也就是我們常用的列表容器
這裡要提醒一下,cocos2d-x類的成員變數在建立後還要呼叫retain函式,否則可能會導致程式崩潰,關於retain的內容,我們將在後續內容討論
建立怪物的方式和建立主角的方式一樣,也是繫結乙個ccsprite物件給怪物即可。
因為,怪物的初始座標(在reset()裡面設定的)在螢幕之外,因此在怪物管理器中還要新增乙個功能,那就是不斷改變怪物的座標,這個功能就是上面的monstermanager.cpp中的update函式。
這裡要介紹乙個巨集:ccarray_foreach,這個巨集是用來遍歷ccarray的,第乙個引數是ccarray物件,第二個引數是存放遍歷值得物件,第二個引數是存放遍歷值的物件,取得遍歷值後,我們還要進行型別轉換。
再來看看update函式做了什麼:
(1)判斷怪物是否處於活動狀態,如果不是,則呼叫怪物的show函式,讓怪物出場
(2)如果怪物已經處於活動狀態。則讓怪物的x座標減少4個畫素,這樣怪物就相當於向左移動了。如果怪物的x座標小於0,則表示怪物超出螢幕範圍,呼叫hide函式,隱藏怪物。
現在,我們在tollgatescene.cpp的init函式最後新增幾句**,讓怪物管理器生效,如下**:
接下來按ctrl+f5執行專案,就可以看到效果圖了
postman 四 新增變數
在進行api測試的時候,不同介面之間有時會用到同樣的引數,甚至有些值都很少會改變,比如每個請求的ip和埠。為了提高用例的可讀性以及可維護性,可以利用postman的 變數 把經常用到的 固定值 抽離出來,後續如果這個值需要改動的話,只需要改它對應的變數即可 想象下假如你的api用例是在測試環境a編寫...
(四)新增簽到獎勵功能
既然上篇檔案提到了,我就先把這個寫出來吧。為了鼓勵學弟學妹們積極簽到,還有就是我做了乙個 檢視答案功能 這個後面講 我就想到了學習51nod上面的消耗點東西去檢視答案。首先更改資料庫,在表users上新增乙個money 的字段 然後在簽到的時候更新。本來想在ac了題後也可以增加的。可是因為某事不想去...
四 ubuntu下新增root賬戶
ubuntu預設是不新增root賬戶的,只有我們安裝時的使用者賬戶,為了方便開發,我個人一般使用root賬戶,下面介紹開啟root賬戶方法 建立root帳號 1 在安裝系統時,root賬戶並沒有被啟用來供你使用,即root帳號被隱藏了,而是通過初始使用者與sudo的結合使用來完成一些需要root許可...