1. 程式人生 > >cocos2d-x 新手引導

cocos2d-x 新手引導

總結了下,新手引導的要點有以下幾個:

  • 畫面的變化.
  • 觸控和按鈕響應.
  • 邏輯處理及程式碼組織.

下面我們就詳細講述這幾個要點:

一.畫面的變化.

對個這個不同的遊戲的做法不盡相同,歸結起來大概有這麼幾種:

1.畫面整體變暗

這個比較簡單,cocos2d就有現成介面:

C++
12345CCSize visibleSize=CCDirector::sharedDirector()->getVisibleSize();//第一個引數是顏色ccc4(r,g,b,a) a取值(0~255),越大越不透明 下面兩個引數為寬高,不傳預設為螢幕大小
CCLayerColor*pLayer=CCLayerColor::create(ccc4(0,0,0,200),visibleSize.width,visibleSize.height);//CCLayerColor* pLayer=CCLayerColor::create(ccc4(0,0,0,200));addChild(pLayer,100);

效果如下:

QQ截圖20130711150001

然後你可以在這層之上新增精靈,最後的效果可能是這個樣子的:

9358d109b3de9c827a7330c36c81800a19d8436c

注:圖片源自網路,如果有版權問題~你丫去死吧! 請聯絡我!

2.區域性高亮

比較簡單的方法是準備幾張張區域性高亮的圖片,隨著引導進度變化而切換!優點是可以做的比較精美,缺點是資源量會比較大!另一種方法是在畫面整體變暗的基礎上摳掉部分割槽域,還好cocos2d提供了CCClippingNode介面(2.1+版)!

CCClippingNode類比較複雜,但我們只用明白兩個東西就好:一個是CCClippingNode的Stencil,一個CCClippingNode的Child,怎麼理解呢?請看下圖:

hhh

這個東西相信大家都有印象吧,上面的圖案(鏤空部分)就是 CCClippingNode的Stencil(模板),實體部分就是CCClippingNode的child(底板),是不是很好明白,讓我們用程式碼來實現吧:

C++
1 2 3 4 5 6 //建立cliper物件 CCClippingNode*pClip=CCClippingNode
::create(); addChild(pClip); //加入灰色的底板 CCLayerColor*pColor=CCLayerColor::create(ccc4(0,0,0,200)); pClip->addChild(pColor);

讓我來加入模板:

C++
12345678910//建立drawnode物件CCDrawNode*m_pAA=CCDrawNode::create();staticccColor4F green={0,1,0,1};staticCCPoint rect[4]={ccp(-50,50),ccp(50,50),ccp(50,-50),ccp(-50,-50)};//用上面的資料儲存一個100x100的矩形m_pAA->drawPolygon(rect,4,green,0,green);