C++ 游戲開發引擎,cocos2d-x-3.7.1 發布

jopen 9年前發布 | 15K 次閱讀 cocos2d-x

cocos2d-x-3.7.1 發布,亮點功能:

Cocos2d-x v3.7.1 是基于 v3.7 開發的一個穩定版本。該版本最重要的功能是為支持 Cocos 2.3.2 Beta 而增加的骨骼動畫支持。

  1. studio: 增加了骨骼動畫支持

    </li>

  2. studio: 增加了對天空盒的支持

    </li>

  3. studio: JSON解析器支持Parsed Touch/Click/Event事件回調

    </li>

  4. Node: 新增getNodeToParentTransform(Node*)接口,該接口用于返回到某一特定父類的轉換矩陣

    </li>

  5. web: 新增cc.director.setClearColor()接口用于支持設置透明背景

    </li>

  6. Widget: 同步UI的enable狀態和bright狀態

    </li>

  7. studio: 優化解析代碼性能

    </li>

  8. JSB: 模板代碼增加Firefox的遠程調試功能

    </li> </ol>


    下載地址

    Cocos2d-x v3.7.1 包含: C++, Lua & JS

    主要功能詳細情況

    骨骼動畫

    Cocos2d-x v3.7.1和Cocos 2.3.2增加了新的骨骼動畫系統,不同于之前的Armature骨骼動畫。這么做的主要原因是我們抽象了ActionTimeline來支持所有基于時間軸的動畫但是Armature并不支持這套時間軸體系。為了復用時間軸系統并讓骨骼動畫系統更精簡,數據更輕量,我們實現了這套全新骨骼動畫系統。從這個版本開始,開發者將可以在Cocos 2.3.2中編輯骨骼動畫。

    新的骨骼動畫系統包含BoneNode, SkeletonNode, SkinNode三個核心類。SkeletonNode是BoneNode的子類,擴展了容器能力,它可以包含子BoneNode和嵌套其他骨骼來構造一個完整的骨骼結構。

    支持的特性:

    1. 骨骼動畫播放

      </li>

    2. 嵌套骨骼

      </li>

    3. 皮膚切換

      </li>

    4. 時間軸控制

      </li>

    5. 渲染調試節點

      </li> </ol>


      幀回調事件新骨骼動畫系統在web引擎中同步支持,我們還會在未來版本中繼續加強其功能

      C++ 游戲開發引擎,cocos2d-x-3.7.1 發布 
      獲取節點到某一個祖先節點的矩陣變換

      在v3.7.1新加了一個接口Node::getNodeToParentTransform()。你可以傳入該Node的一個祖先節點,返回的將是該節點到這個祖先節點的矩陣變換,比如:

      auto parent2 = Node::create();
      auto parent1 = Node::create();
      auto node = Node::create();
      parent2->addChild(parent1);
      parent1->addChild(node);
      // This will give you the transform of node in parent2's coordinate system
      auto transform = node->getNodeToParentTransform(parent2);


      這個接口對于web引擎也是可用的。

      web引擎支持設置背景顏色

      從v3.7.1開始,我們增加了cc.director.setClearColor(),是的web引擎可以方便地控制游戲的背景顏色。傳入的顏色可以是不透明的或者含透明度通道。注意,如果你想要的是不透明的背景顏色的話,這種方法比創建一個不透明的層作為背景更高效。具體可以參考如下代碼:

      // 方法1:使用不透明的層作為背景
      var background = cc.LayerColor(cc.color(255, 0, 0));
      background.width = cc.winSize.width;
      background.height = cc.winSize.height;
      // This will give you a red background
      scene.addChild(background, 0);

      // 方法2:使用setClearColor,該方法比方法1高效 cc.director.setClearColor(cc.color(255, 0, 0));</pre>


      當然了,你也可以創建完全透明的背景顏色。

      Widget的enable狀態和birhgt狀態

      在之前的設計,setEnabled只控制widget是否響應輸入,而不影響widget的顯示效果。許多開發者對此設計頗有怨言。所以從v3.7.1版本開始,我們修改了這一邏輯,使得setEnabled會影響到widget的顯示效果。這就意味著,當你通過調用setEnabled(false)把一個widget變成不可用時,它會顯示為灰色。

      // 舊版本,你需要這樣調用
      widget->setEnabled(false);
      widget->setBright(false);

      // 在v3.7.1版本,你只需要調用 widget->setEnabled(false);</pre>


      Firefox remote debugger support

      從v3.7.1版本開始,新建的JSB工程支持Firefox遠程調試。可以通過該文檔了解如何使用Firefox瀏覽器來調試你JSB工程。注意,它只能調試JavaScript代碼。如果要調試C++代碼的話,還是需要通過Xcode或者Visual Studio。
      C++ 游戲開發引擎,cocos2d-x-3.7.1 發布

       

       本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!