Game Studio
Liên kế mạng xã hội

Game Studio


Cocos2d-x&JS v3.7.1 đã chính thức được phát hành

Chukong technologies vừa vui mừng thông báo rằng họ đã phát hành cocos2d-x v3.7.1. Cocos2d-x v3.7.1 là một phiên bản ổn định hơn của v3.7. Điều quan trọng nhất trong bản cập nhật là họ đã hỗ trợ skeleton animation Cocos 2.3.2Beta.

  • Bổ sung skeleton animation mới và csb parser cho Cocos v2.3.2 beta
  • Bổ sung skeleton animation mới và JSON parser trong web engine
  • Bổ sung Skybox csb/JSON parser cho Cocos v2.3.2 beta
  • Phân tích Touch/Click/Event callback trong JSON parser
  • Bổ sung getNodeToParentTransform với parent được chọn
  • Bổ sung cc.director.setClearColor và hỗ trợ background trong suốt
  • Đồng bộ hóa trạng thái của Widget
  • Tối ưu hóa hiệu năng của JSON parser bằng cách loại bỏ audio play
  • Hỗ trợ gỡ lỗi từ xa với Firefox trong các JS mẫu

Download

Cocos2d-x v3.7.1 đã bao gồm C++, Lua & JS

Chi tiết về các tính năng chính:

Skeleton Animation

Trong v3.7.1 và Cocos 2.3.2, Cocos cung cấp một hệ thống skeleton animation mới khác với Armature. Lý do vì họ muốn trích hệ thống ActionTimeline để nó hỗ trợ tất cả các loại animations nhưng Armature không hỗ trợ điều này. Để nhận được lợi ích từ cho hệ thống timeline và làm cho hệ thống skeleton animation gọn nhẹ hơn, Cocos đã triễn khai hệ thống skeleton animation mới. Từ phiên bản này, bạn sẽ có thể chỉnh sửa skeleton animation trong Cocos v2.

Hệ thống skeleton animation mới có chứa BoneNode, SkeletonNode, SkinNode. SkeletonNode là một subclass của BoneNode và có khả năng mở rộng, do đó, nó có thể chứa BoneNode và lồng SkeletonNode vào cấu trúc của một skeleton.

Các tính năng được cung cấp:

  • Có thể điều khiển skeleton animation
  • Lồng các skeleton vào nhau
  • Thay thế Skin của skeleton
  • Kiểm soát thời gian
  • Debug draw
  • Frame event callback

Hệ thống skeleton animation mới này cũng hỗ trợ có web. Và sẽ được cải tiến nhiều hơn trong những update sau.

Lấy được những biến đổi của Node với parent của nó

Cocos đã thêm một chức năng mới trong API getNodeToParentTransform của Node, trong v3.7.1, bạn có thể truyền một parent của nó như một tham số để có được những biến đổi của Node có liên quan đến parent cụ thể này. Dưới đây là một ví dụ:

auto parent2 = Node::create(); 
auto parent1 = Node::create();
auto node = Node::create();
parent2->addChild(parent1);
parent1->addChild(node);
// Điều này sẽ cung cấp cho bạn những biến đổi của node trong hệ tọa độ của parent2
auto transform = node->getNodeToParentTransform(parent2);

API này cũng có thể sử dụng trong các web engine.

Thiết lập màu background cho web engine.

Từ v3.7.1, bạn có thể kiểm soát background của trò chơi trong web engine một cách dễ dàng. Cocos đã cung cấp một API mới: cc.director.setClearColor(). Các màu sắc bạn đã truyền vào có thể không trong suốt hoặc trong suốt. Lưu ý rằng nếu bạn muốn màu sắc không trong suốt, sẽ hiệu quả hơn so với việc tạo một lớp background như ví dụ sau:

// Solution1: Sử dụng lớp background có màu
var background = cc.LayerColor(cc.color(255, 0, 0));
background.width = cc.winSize.width;
background.height = cc.winSize.height;
// Điều này sẽ cung cấp cho bạn một background đỏ
scene.addChild(background, 0);
// Solution2: Sử dụng setClearColor
// Điều này sẽ cung cấp cho bạn một background đỏ và hiệu quả hơn nhiều so với solution1
cc.director.setClearColor(cc.color(255, 0, 0));

Bên cạnh đó, bạn cũng có thể làm cho background của bạn hoàn toàn trong suốt.

Đồng bộ hóa trạng thái của Widget

Trong các API Widget cũ, setEnabled chỉ kiểm soát được là liệu widget có thể đáp ứng với sự kiện chạm của  người sử dụng hay không và setBright chỉ kiểm soát việc hiển thị của widget là trạng thái màu xám (disable) hoặc trạng thái sáng (enable). Điều này có thể gây ra một chút khó chịu cho các nhà phát triển. Vì vậy, từ v3.7.1, Cocos quyết định đông bộ hóa trạng thái sáng widget khi nó được enable. Điều đó có nghĩa, một khi widghet của bạn bị vô hiệu hóa thông qua setEnabled (false), màu hiển thị của nó cũng sẽ thay đổi sang màu xám.

// Trong phiên bản củ, bạn sẽ làm như thế này 
widget->setEnabled(false);
widget->setBright(false);
// Trong v3.7.1, bạn chỉ cần làm như thế này
widget->setEnabled(false);

Hỗ trợ gỡ lỗi từ xa với Firefox

Trong v3.7.1, Cocos đã kích hoạt hỗ trợ gỡ lỗi từ xa với Firefox cho các project JSB. Bạn chỉ cần làm theo documentation3 này, và bạn có thể gỡ lỗi các project JSB của bạn với trình duyệt Firefox của bạn. Lưu ý rằng nó cho phép bạn gỡ lỗi JavaScript code trong project JSB của bạn, đối với gỡ lỗi native code bạn vẫn nên sử dụng Xcode hoặc Visual Studio.

J.Black

Gamestudio.vn