這篇的内容很簡單,擷取ui控件,然後使用它。
還記得我們在ui編輯器中給三個按鈕分别命名了吧?
現在要用上了。
笨木頭花心貢獻,啥?花心?不呢,是用心~ 轉載請注明,原文位址: 文章來源:
首先給tollgatescene再include一些頭檔案,不然等會編譯又報錯了:
上面就是比較完整的使用ui所需要用到的頭檔案了。
然後,擷取ui控件的方法如下,繼續修改createoprui函數:
helper::seekwidgetbyname函數會從ui裡面找控件,一層層的找,父控件找不到,就找子控件,如此遞歸,最後找的名字相符的控件,傳回這個控件對象。
很簡單,不多解釋喇~
ok,最後一步了,現在按鈕擺在那裡什麼都做不了,我們給按鈕添加回調事件~
先給tollgatescene添加三個函數聲明:
這是button點選事件回調時所需要的函數格式。
然後,繼續修改createoprui函數:
利用addtoucheventlistener函數就可以綁定按鈕的回調事件了~
最後了,看看三個回調函數的實作:
是不是感覺有點小複雜?
應該說,有點小麻煩,因為按鈕事件綁定的時候,是沒有區分“按下”、“移動”、“松開”的,是以我們要自己判斷一下,touch_event_ended就是按鈕點選,然後松開的時候的事件。
如果大家覺得麻煩,可以自己改源碼,添加一些函數,在綁定按鈕事件的時候,可以指定綁定哪種事件。以及可以使用std::function來作為參數,這樣很友善,當然,跑題了。為了避免大家混亂,這裡就不介紹了。
ok,現在大家運作遊戲,然後點選這三個操作按鈕,看看主角是不是能左右移動以及放屁(向下沖)吧~
下一篇,添加碰撞檢測,讓主角碰到牆壁之後,進行加血。
沒錯,就是加血,不是扣血~因為《别救我》勝利的條件是血量為0,碰到牆是要懲罰的~
懲罰的方式就是加血~