使用3.0實現微信打飛機——14.終結篇

本篇博客來處理一些遊戲中的bug,這些bug是我在測試遊戲的時候發現的,可能還有其他的一些bug,沒有發現,所以大家如果發現有什麼bug的話,就在本博客下留言吧。首先子彈的發射感覺很僵硬,不像原來遊戲那樣感覺很爽,原因是子彈的移動函數move中直接使用的是設置座標的位置,每0.1s設置一個新的座標,位置之間沒有過渡,所以在函數中改爲執行move的動畫,這樣的話看起來就比較的爽了。
1 //子彈移動
2 void Bullet::move(floattm)
3 {
4     this->setVisible(true);
5     auto move = MoveBy::create(0.1f,Point(0,OFFSET));
6     this->runAction(move);
7     //子彈移動出了屏幕
8     if(this->getPositionY() > Director::getInstance()->getWinSize().height)
9     {
10         this->removeFromParentAndCleanup(true);
11         //從管理器中移除出去
12         auto & vector = Manager::getInstance()->getBulletVector();
13         vector.eraseObject(this);
14     }
15 }

之所以有一個setVisible(true)是因爲我在添加子彈的時候子彈是不顯示的,這樣做看起來子彈飛的比較流暢,是一種感官的感覺,你可以去掉這一句話,然後看下效果就明白了。還有一個是對暫停按鈕的優化,如果移植到android上,手指點擊的時候按鈕不是很靈敏,這是因爲這個按鈕的區域有點小了,所以在點擊按鈕的時候增大這個點擊的區域,移植android的時候手指點擊的時候就會很好的響應了,我們在遊戲的主場景中的onTouchBegan函數中做一個判斷,增大手指點擊按鈕響應的區域。

1 //單點觸摸的監聽函數
2 bool MainGame::onTouchBegan(Touch * touch,Event * pEvent)
3 {
4     //獲得觸摸點
5     auto point = touch->getLocation();
6  
7     //判斷手指是否點擊了暫停按鈕,因爲在android上手指的點擊範圍有點小,這裏設置的大一些
8     auto menuRect = m_ui->getMenu()->getBoundingBox();
9     //origin是圖片的左上角點,這裏把rect設置的範圍大一些
10     menuRect = Rect(menuRect.origin.x-menuRect.size.width*3,
11         menuRect.origin.y-menuRect.size.height,menuRect.size.width*3,menuRect.size.height*2);
12     if(menuRect.containsPoint(point))
13     {
14         m_ui->getMenu()->setSelectedIndex(1);
15         m_ui->menuCallback(m_ui->getMenu());
16     }
17  
18     //判斷手指點擊的區域是否在飛機上
19     auto rect = m_player->getBoundingBox();
20     if(rect.containsPoint(point))
21         returntrue;
22  
23     returnfalse;
24 }

 這樣的話整個飛機大戰的遊戲就算做好了,關於內存的釋放問題貌似做的不是很好,不過遊戲不大,這個問題也就不想深究了。我在處理遊戲道具的時候和原來的遊戲有些不同,這都怪我沒有好好的玩玩人家的遊戲,要不就會按照他的邏輯寫了,不過我博客的處理方法倒也可以,大家根據自己的喜好做吧。移植的過程也是相當的簡單,這裏就不說了。通過這個小例子,用3.0的一些東西練了一下手,3.0的東西和2.x還是大同小異的,就是改變些函數的名稱,變量的名稱,其他的思路思想基本也沒有什麼變化,關於3.0的新內容大家可以留言討論。最後的源代碼和遊戲apk請加羣(小塔cocos2d-x交流羣298136329)索取或者到本網站的資源下載區下載。

用3.0實現飛機大戰——終結篇


版權聲明:本文由( 小塔 )原創,轉載請保留文章出處!

本文鏈接:http://www.zaojiahua.com/the-end.html

1
該內容對我有幫助
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章