[cocos2d-js] - 01

來源:互聯網
上載者:User

標籤:class   swa   closure   執行   包含   span   lis   參數   pre   

使用cocos的 run命令在真實android裝置上運行apk時,如果報 adb more than one devices 可以使用下面的命令來解決問題:

        1.找到android sdk 下面的 adb 所在目錄 .(一般是: %install_directory%/Android/android-sdk/platform-tools/adb)

        2.運行下面命令:

adb kill-server

 

使用cocos工具編譯apk

cocos compile -p android -m release

使用cocos 在真實android裝置上運行apk

cocos run -p android

沒有指定 -m 時,預設是 debug.

 

新建立的cocos2d-js項目目錄結構:

main.js : 負責啟動遊戲情境, 無論是Web瀏覽器運行還是原始平台運行,都是通過該檔案啟動遊戲情境的。

 

編譯和啟動遊戲:

// 在項目目錄下開啟終端並執行// -p指示目標平台,包括web,ios,mac,android,win32,每次編譯請選擇其中之一cocos compile -p web|ios|mac|android|win32// 除此之外,還可以選擇編譯模式:-m debug|release// Web平台還可以添加--advanced來使用Closure Compiler的進階混淆功能對代碼進行混淆cocos compile -p android -m releasecocos compile -p web -m release --advanced// 將compile命令替換為run即可在模擬器或真機上運行遊戲cocos run -p webcocos run -p ios

cocos2d-js工程中,所有js檔案都要在 project.json檔案中進行註冊。

 

cocos2d-js 事件處理機制:

  事件處理機制中有三個角色:

  1.事件:   cc.EventTouch(觸摸事件) ,  cc.EventMouse(滑鼠事件) ,  cc.EventCustom(自訂事件) , cc.EventKeyboard(鍵盤事件) ,  cc.EventAcceleration(加速事件).

  2.事件來源: 是cocos2d-js中的精靈,層,菜單等節點對象

  3.事件處理器: 是事件監聽器類 cc.EventListener , 它包含不同類型的監聽器:

      1>.  cc.EventListener.ACCELERATION  加速事件監聽器

      2>.  cc.EventListener.CUSTOM  自訂事件監聽器

      3>.  cc.EventListener.KEYBOARD 鍵盤事件監聽器

      4>.  cc.EventListener.MOUSE  滑鼠事件監聽器

      5>.  cc.EventListener.TOUCH_ALL_AT_ONCE 多點觸摸事件監聽器

      6>.  cc.EventListener.TOUCH_ONE_BY_ONE  單點觸摸事件監聽器

  事件管理器:  事件 和 監聽器之間需要在程式中建立關係, 關係的建立是由 事件管理器負責: cc.EventManager

    cc.EventManager 的 addListener函數,用來註冊事件監聽器:

      cc.EventManager.addListener(listener, nodeOrPriority);

              @listener ,是要註冊的事件監聽器對象

     @nodeOrPriority , 可以是一個node對象,或者一個表示優先順序的數值.

//建立時間監聽器var listener = cc.EventListener.create({    event:cc.EventListener.TOUCH_ONE_BY_ONE,    swallowTouches: true,           //設定是否吞沒事件,在 onTouchBegan 方法返回 true 時吞掉事件,不再向下傳遞
  onTouchBegan:function(touch,event) {
    // ..... return false;
  }
});

//註冊事件監聽器
cc.eventManager.addListener(listener , this.getChildByTag(SpriteTags.kBoxA_Tag));

 

多解析度螢幕適配

 

橫豎屏設定

  android:  在 runtime-src/proj.android/AndroidManifest.xml 檔案的設定:

android:screenOrientation="landscape"     //landscape為橫屏,  portrait 為豎屏

  ios: 在xcode 中設定:

 

精靈:

  精靈是遊戲中非常重要的概念,圍繞精靈的還有很多概念,如精靈幀,緩衝,動作,動畫等。

  1.精靈的建立:

    1>. 根據圖片資源建立精靈:

//根據圖片資源路徑var sp1 = new cc.Sprite("res/background.png");

      裁剪資源圖片的指定地區:

var sp2 = new cc.Sprite("res/tree.png",cc.rect(604,38,302,295));

    2>.從紋理圖集的精靈幀名建立:

var sp = new cc.Sprite("#background.png");// note:  這種方式與圖片資源路徑方式建立的精靈的參數都是一個字串,為了區分,在精靈幀名前加上 # 號

    3>.根據精靈幀建立:

//先從精靈緩衝擷取精靈幀對象,再由精靈幀對象建立精靈var spriteFrame = cc.spriteFrameCache.getSpriteFrame("background.png");var sp = new cc.Sprite(spriteFrame);

    4>.根據紋理建立:

//1.首先建立紋理對象, 再通過紋理來建立精靈var texture = cc.textureCache.addImage("background.png");var sp = new cc.Sprite(texture);//可以選擇紋理的指定地區來建立精靈var sp2 = new cc.Sprite(texture, cc.rect(0,0,480,320));

  建立精靈時,應該選擇這四種方式的哪一種?

  在具體情境中建立精靈時,應該選擇最方便,並且效能最好的方式來建立精靈。  紋理圖集和精靈緩衝就是最佳化效能的建立精靈的方式。

  紋理圖集(texture atlas),也稱為精靈表(sprite sheet), 它是將許多小的精靈圖片組合到一張大圖裡,建立精靈時,根據圖集的特定地區來建立精靈。

  在cocos2d中主流使用 Zwoptex 或者 TexturePacker 工具來建立紋理圖集。  這些工具會產生一個 大的紋理圖集,以及一個 plist 檔案。 plist檔案裡包含了精靈名和它的座標。

 

  精靈緩衝:

  精靈緩衝是緩衝中的一種, cocos2d中緩衝的種類有: 紋理緩衝(TextureCache), 精靈幀緩衝(SpriteFrameCache) , 動畫緩衝(AnimationCache)。

  建立各種緩衝的目的基本上是為了最佳化效能。

精靈緩衝使用執行個體:

//首先擷取精靈幀緩衝, 然後向精靈幀緩衝中添加精靈幀 ,最後使用精靈幀名建立精靈var frameCache  = cc.spriteFrameCache;frameCache.addSpriteFrames("res/SpriteSheet.plist","res/SpriteSheet.png");var mountain1 = new cc.sprite("#mountain1.png");//建立精靈的另外一種方式, 主要用於精靈動畫上var frameCache  = cc.spriteFrameCache;frameCache.addSpriteFrames("res/SpriteSheet.plist","res/SpriteSheet.png");var heroSprite = frameCache.getSpriteFrame("helo1.png");

 

 情境和層

一般是在層的建構函式中對介面的控制項進行建立和初始化。

  層的生命週期函數:

  1. ctor 建構函式, 初始化層時調用

  2. onEnter() , 進入層時調用

  3. onEnterTransitionDidFinish() 進入層而且過度動畫結束時調用

  4. onExit() ,退出層時調用

  5. onExitTransitionDidStart() , 退出層而且開始過渡動畫時調用

在重寫層的生命週期函數時,一定要調用父類函數語句:this._super().

 

情境過渡動畫

  情境過渡動畫是由TransitionScene類和它的子類展示的。 TransitionScene類的直接子類有11個,有些子類還有子類,全部過渡動畫有30多個。 過渡動畫的使用方式都是類似的:

cc.director.pushScene(new cc.TransitionFadeTR(1.0, new SettingScene()));//過渡動畫類的建構函式有兩個參數, 第一個是動畫期間,第二個是情境對象

 

[cocos2d-js] - 01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.