Hiển thị các bài đăng có nhãn hướng dẫn. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn hướng dẫn. Hiển thị tất cả bài đăng

Hướng dẫn cách Port code từ Cocos2d-x 2 sang Cocos2d-x 3.x ( Update liên tục ...)

Người đăng: share-nhungdieuhay on Thứ Ba, 15 tháng 7, 2014

Hi mọi người!

Lâu lâu lười viết bài thế, không phải là không còn gì để viết, không còn nguồn để tham khảo. Mà là vì những bài code về sau dung lượng code lớn quá, up lên Blog khá là mất thời gian vì diễn giải khá dài, dù có chia nhỏ từng phần ra cũng hơi oải các bạn ạ. Thời gian để viết Blog cũng đủ cho mình chiến được 1 project tầm trung rồi, vì thế nên các bạn hết sức thông cảm nếu mình có ra bài chậm.

Vậy giải pháp cho vấn đề này như thế nào? Mình xin đưa ra với các bạn 1 vài giải pháp như sau

1/ Nếu bài viết trên Blog, vẫn chia Part 1-2-3 cho tiện, và mình sẽ Copy + Paste chỉ giải thích ( comment ) những đoạn code, phương pháp nào thật sự khó hiểu, hoặc mới chưa từng có trên Blog. Còn lại các bạn nghiên cứu trong từng file .h, .cpp mình sẽ up lên. Trong code cũng chỉ comment đoạn quan trọng, kẻo rối mắt nhé

2/ Code cho phiên bản V3 ngày càng nhiều lên, các bạn có thể tìm trên Github.com bằng các key thích hợp. Tuy nhiên chúng ta không thể bỏ qua 1 nguồn tài nguyên khá lớn từ phiên bản Engine Cocos2dx -2.x được. Sẽ có bạn bảo, code đó làm sao chạy được với Engine 3.x, tất nhiên rồi ( Code 3.1 nhiều khi còn chả chạy được trên V3.2 đó bạn ). Đó là lý do mình viết bài này, chúng ta sẽ Port code từ phiên bản cũ lên phiên bản 3.x rồi Biên dịch = phiên bản mới. Cũng hay đấy chứ.

Lợi ích của việc Port Code này là gì? Theo mình thì có 1 vài lợi ích sau

+ Mở rộng nguồn tài nguyên, chúng ta sẽ có nhiều dự án để thực hành hơn
+ Mã nguồn cũng phong phú hơn do 2.x ra khá lâu rồi
+ Ôn lại được những kiến thức đã học của 3.x. Giúp bạn nắm chắc hơn về cú pháp lệnh của 3.x, sướng nhé
+ Học thêm được một số giải thuật, phương pháp giải quyết bài toán, cấu trúc chương trình mà những người đi trước đã share ( nhiều bộ code full nhé ).
+ Còn gì nữa không nhỉ? tạm thời thế đã :-))

Những ai có thể Port Code?

Những người đã đọc qua 40 bài viết ( có 29 bài học và mấy chú ý ) trong blog này hoàn toàn có thể làm được nhé. Bạn không tự tin ư? Với chính bản thân mình lúc đầu khi bắt tay vào Port code cũng cảm thấy hơi e dè, nhưng chỉ cần qua 1 project thôi là bạn sẽ cảm thấy tự tin lên nhiều. Mình khẳng định chắc chắn đấy.

Như vậy nhé, mình khẳng định lại lần cuối, mọi người hoàn toàn có thể làm được theo những lưu ý dưới đây
( Bài viết sẽ được bổ sung dần dần nhé )

PORT CODE

B1 - Tạo mới Project bằng Engine 3.x, dễ như ăn kẹo

B2 - Không nên copy Class của 2.x đập thẳng vào Class 3.x rồi sửa, rồi build nhé, làm vậy sẽ nhanh chóng bị rối vì rất nhiều lỗi mà ko biết vì sao.

B3 - Ngó nghiêng file AppDelegate.cpp, .h của 2 phiên bản, có đôi chút khác ở phần glview, và phần định hướng Resource, và hàm run scene đầu tiên bạn chỉnh lại 1 chút là được. Phần này ko quá quan trọng, bạn có thể để nguyên của phiên bản 3.x nhé. Có gì mình fix sau

B4 - Trong thư mục Class của 2.x, Tìm 2 file Quan trọng nhất của game - có nhiệm vụ quản lý toàn bộ game, đó là 2 file sẽ được chạy đầu tiên, bạn chỉ cần nhìn trong AppDelegate.cpp là thấy được scene đầu tiên được chạy là của lớp nào thì lớp đó sẽ nằm trong 2 file kia. Thường là thế, không tính đến những cấu trúc file loằng ngoằng do sở thích của người lập trình.

B5 - Trong 2 file quan trọng nhất này, bạn sẽ thấy rất nhiều #Inlude từ các file khác, rất nhiều thuộc tính, nhiều hàm, rối tinh rối mù đúng không. Hãy xem qua để biết được cấu trúc liên kết của các lớp, các hàm trong Project là như nào. Rối quá thì dùng giấy ghi lại thôi.

B6 - Bắt đầu làm việc. Trong Class của 3.x, bạn mở file HelloWorldScene.h, nó là file quan trọng đầu tiên đấy. Bắt đầu copy các thuộc tính, các hàm từ bên file .h quan trọng nhất bên 2.x sang nhé ( cứ copy y nguyên nhé, phần sửa đổi cú pháp lệnh, hàm để dành Bước cuối cùng ).

Sau đó trong file HelloWorldScene.cpp,  bạn tạo ra các khai báo hàm rỗng - kế cả hàm hủy và hàm tạo. Rồi build thử, nếu chạy được nghĩa là OK, nếu không được, lỗi có thể do :

+ Lỗi cú pháp, thư viện hàm đã "lỗi thời". Cách sửa trình bày sau
+ Code bị lỗi do thừa thiếu, hoặc có sử dụng đối tượng của lớp khác mà ko #include, hãy comment nó lại để tránh lỗi đã.
+ Lỗi không giải thích nổi, do VS ( mình toàn xài VS ) báo rất khó hiểu, nên phải dựa vào kinh nghiệm để phán đoán và sửa lỗi. Với 3-4 tháng kinh nghiệm là đủ dùng.

B7 - Khi build được thành công với cặp file này ( .h, .cpp) nghĩa là file .h đã OK ( có thể lỗi về cú pháp thì bạn nhảy đến bước cuối cùng - xem rồi sửa theo ) file .cpp thì toàn hàm rỗng OK là đúng rồi. Giờ làm công việc khó khăn hơn là, bắt đầu xử lý các hàm rỗng đó nhé ( Trong Class 3.x)

+ Phần hàm tạo và hàm hủy, khá dễ. Hàm tạo thì khởi tạo giá trị cho các đối tượng, nếu là con trỏ thì cho nó là Null. Hàm hủy thì giải phóng các biến con trỏ ( những biến mà trong project có sử dụng hàm new nhé )

+ Hàm createScene() đển nguyên, trừ phi bên 2.x có thêm cú pháp khác
2.x nó thế này
CCScene* GameLayer::scene()
{
    CCScene * scene = NULL;
    do 
    {
    } while (0);
    return scene;
// Thường ko copy gì cả nhé

+ Hàm init (), bạn để nguyên như vậy, copy thêm các câu lệnh và hàm nằm trong khối lệnh sau ( trong file 2.x )

bool GameLayer::init() // init của v 2.x
{
   bool bRet = false;
    do 
    {
    CC_BREAK_IF(! CCLayer::init()); // không copy

// Copy các hàm, lệnh ở đoạn này
    bRet = true; // Không copy

    } while (0);
    return bRet;
}

B8 - Rồi, build thử xem có lỗi gì không, khả năng là có lỗi cao, vì trong hàm init sẽ có gọi đến 1 số hàm khác của project, thậm chí gọi tới đối tượng của lớp khác. Bạn hãy comment hết lại những hàm, code phát sinh lỗi. Build cho tới khi thành công thì bắt đầu công đoạn tiếp theo.

B9 - Khi đã build thành công ở bước 8, bạn mở comment từng hàm 1 trong hàm init ( Các hàm này đểu được khai báo rỗng cả rồi nên ko sợ lỗi ) Khi mở hàm nào, hãy copy code từ hàm tương ứng bên 2x chuyển sang, và chú ý xem trong hàm mới copy đó, có gọi tới hàm nào khác không thì bước tiếp theo là copy code của Hàm được gọi đó vào.

Cứ theo từng bước như thế, bạn sẽ mở hết các hàm.

B10 - Trong quá trình mở hàm, bạn sẽ gặp phải các đối tượng của lớp khác, khi này bạn sẽ làm như sau. Copy 2 file .h, .cpp của lớp đó từ 2.x sang 3.x của mình, Nhớ comment lại code, hàm, của 2 file đó rồi thực hiện mở comment như các bước trên. ( Nhớ phải thêm Class mới = VS hoặc Android.MK nhé )

Cứ làm tuần tự như vậy cho đến khi copy mở hết code, hàm từ 2.x sang 3.x. Tất nhiên không chỉ đơn giản như vậy, vì trong code, hàm của 2.x có cú pháp đã lỗi thời không phù hợp với 3.x nên báo lỗi ngay. Vậy thì bạn chỉ việc làm theo các lưu ý của bước cuối cùng sau đây là OK thôi

B11 - Chuyển đổi cú pháp code, cập nhật tham số hàm. QUAN TRỌNG

Vì sang 3.x thư viện có sửa đổi nhiều nên nhiều lớp cũ, hàm cũ không thể dùng được, hãy tham khảo trong bài cpp-test để lấy đúng nguyên mẫu của hàm đó, sửa đổi là xong, Tất cả mình sẽ trình bày bên dưới:

1/ Hầu như các prefix CC đều được loại bỏ khỏi lớp nhé, nêu bạn xóa cái CC này đi cho gọn, thoáng

Ví dụ CCSprite => Sprite  ,v.v...

2/ Thay đổi tên 1 số lớp
Ví dụ cpp, hoặc Point, CCPointMake => Vec2

CCPointZero => Vec2::ZERO

3/ Hàm Touch đơn

Không nhớ 2.x nó thế nào

Chuyển thành

bool onTouchBegan(Touch* touch, Event* event);

4/ Touch đa điểm

2.x void ccTouchesBegan(CCSet* pTouches, CCEvent* event);

3.x void onTouchesBegan(const std::vector<Touch*>& touches, Event *event); 

5/ dạng share

2.x _screenSize = CCDirector::sharedDirector()->getWinSize();

3.x _screenSize = Director::getInstance()->getWinSize();

Đại loại có dạng share ở dầu lệnh static bạn có thể dùng getInstane , hãy chỉ chuột vào lệnh sharedDirector() nó sẽ hiện bảng lệnh nào dùng để thay thế ( VS + VAX nhé )

6/ Hàm callback là dạng hàm được gọi khi thực hiện event nào đó, ví dụ click chuột menu, hoặc trong action sequence hay gặp

2.x (CCObject* pSender)

3.x (Ref* pSender)

7/ Menu
2.x
CCMenuItemSprite * starGametItem = CCMenuItemSprite::create(
                                                                menuItemOff,
                                                                menuItemOn,
                                                                this,
                                                                menu_selector(GameLayer::startGame));
   
3.x
MenuItemSprite * starGametItem = MenuItemSprite::create(
                                                                menuItemOff,
                                                                menuItemOn,
                                                                CC_CALL_BACK_x(GameLayer::startGame,this));
x = 0,1,2,3 tùy thuộc vào số tham số của hàm được gọi

8/ CCArray

Chuyển sang dùng Vector, ví dụ vector<T> vec; hoặc Vector<T> Vec, hai thằng này có vẻ giống nhau nhé, nhưng hàm của chúng có khác nhau đấy.

9/ spriteFrameByName
2.x
CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName()
3.x
SpriteFrameCache::getInstance()->getSpriteFrameByName("")
10/ Create

CCSprite::spriteWithFile() -> Sprite::create();

11/ Action

runAction(CCSequence::actions(CCDelayTime::actionWithDuration(0.5f),
 CCCallFunc::actionWithTarget(this, callfunc_selector(HelloWorld::resetGame)),NULL));

3.x

runAction(Sequence::create(DelayTime::create(0.5f),
  CallFuncN::create(CC_CALL_BACK_x(HelloWorld::resetGame,this)),NULL));
CC_CALL_BACK_x, x  = 0,1,2,3  tùy vào số tham số của resetGame

=> Các action đều chuyển về ::create

12/ CGFloat

=> float
   

13/ Debug Box2D

void draw() - 2.x
virtual void draw(Renderer *renderer, const Mat4 &transform, bool transformUpdated) override; - 3.1

3.2
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
Tạm thời như vậy thôi nhỉ, còn 1 vài đoạn code đặc biệt nữa, mình không nhớ hết, vì giờ lục lại các bài code hơi bị nhiều. Có gì mình sẽ bổ sung sau. OK?

Vậy là trong bài này chúng ta đã học được cách để Port code từ phiên bản 2.x sang 3.x mà không quá khó khăn rồi.

Nếu bạn làm theo các bước trên đặc biệt chú ý bước cuối cùng quan trọng thì sẽ không Project 2.x nào làm khó được bạn, Mình đã làm 2-3 project 2.x rồi, thành công cả. Hì

Có thể tóm gọn lại như sau

+ Làm theo từng bước: Sửa cú pháp trước =>Copy file =>đóng - mở comment = > Copy code => đóng - mở comment => Debug => mở từng hàm => Debug => đóng mở comment chỗ lỗi => Debug => KẾT QUẢ

Thế thôi nhỉ, Hẹn gặp lại ở bài sau!
More about

Cách build Project cpp-tests của Cocos2d-x V3.x ra EXE (publish not debug)

Người đăng: share-nhungdieuhay on Thứ Năm, 10 tháng 7, 2014

Hi các bạn!

Dạo này mình tập trung nghiên cứu mấy project game lớn lớn 1 chút để tích kinh nghiệm và đào sâu hơn các thư viện mẫu của Engine nên cũng ít viết bài hơn. Mọi người thông cảm nhé. Càng đào sâu đọc kỹ càng thấy những hiểu biết trước đây có nhiều điểm chưa đúng, hoặc không còn đúng vào thời điểm hiện tại. Như thế là tốt, chứ cứ bảo thủ với kiến thức cũ của mình thì nguy. Chính vì thế mình đang chỉnh sửa lại những bài viết cũ trên Blog.

Trong 1 bài ngắn ngắn này mình sẽ chỉ cho các bạn cách Publish Project cpp-test của Engine ra file chạy Exe trong Window - có thể mở trực tiếp nhiều lần ko cần dùng VS. Không xét việc build APK nhé, bạn làm việc nhiều trên máy tính để code hơn mà.

Các bạn biết đấy, 1 project bình thường tạo bởi Engine, bạn có thể build ra exe bằng 2 cách :

+ Dùng lệnh cmd của window
+ Dùng VS2012, 2013 để tạo bản Release hoặc Debug

Nhưng với cách tạo Release hoặc Debug mình chạy trực tiếp file exe sẽ lỗi do thiếu Resource, và rất nhiều lib,obj, log, linh tinh khác trong thư mục. Mỗi lần chạy lại phải mở VS lên khá bất tiện. Có thể mình chưa biết cách Publish trong VS chăng. Có ai biết không - Cách build 1 lần rồi mở file Exe lên chạy cho các lần khác đó?

Với 1 bản Publish bạn sẽ dễ dàng sử dụng mọi lúc mọi nơi trên window, kể cả vác sang máy khác để chạy thử mà ko phải mở VS lên.

Thông thường khi bạn down Engine về, bạn build Project cpp-test bằng cách sau

+ Mở file cocos2d-win32.vc2012.sln theo đường dẫn Q:\ANDROID\Cocos2dx3\build, rồi cứ thế Debug và chạy thử, lần nào muốn xem ví dụ mẫu bạn cũng sẽ phải làm như vậy khá bất tiện nhỉ. Mình chuyển chế độ Release cũng vẫn phải làm vậy là sao. Nên loay hoay tìm ra cách build cmd cho cpp-tests kia. đơn giản thôi, chẳng cao siêu gì, nhưng có thể có người chưa biết như mình chẳng hạn.

Cách của mình là như thế này

+ Dùng lệnh cmd của window buil Project cpp-test như là 1 project thông thường các bạn tạo ra, nhưng trước hết các bạn phải chỉnh sửa 2 file sau.

1/ Copy file cocos2d-win32.vc2012.sln ở trên vào Project cpp-test theo đường dẫn Q:\ANDROID\Cocos2dx3\tests\cpp-tests\proj.win32, đổi tên lại thành cpp-tests.sln

2/ Quan trọng đây : Sửa path của các Libs trong file đó theo đúng đường dẫn mới ( do mình copy và thả vào thư mục khác với thư mục build mà ). Có chút kinh nghiệm là sửa được thôi. Mà DOWNLOAD file của mình cho nhanh . Trong này mình đã bỏ đi Lib và Project test khác nhé chỉ để cpp-tests thôi

3/ Mở file .cocos-project.json Xóa hết ( tốt hơn là lưu Save As đề phòng ) config trong đó và paste

{
    "project_type": "cpp"
}

Save lại

OK, giờ thì BUILD thử bằng commend sau

>cocos run -s (chỗ này bạn kéo thả thư mục cpp-tests vào đây nhé, vì path dài ngại gõ) -p win32

Kết quả sẽ ra thư mục Publish nằm trong thư mục Cpp-tests với đầy đủ Resource, dll, EXE.
Khi nào bạn cần chạy thử các ví dụ chỉ việc vào đây, hoặc tạo shortcut ngoài desktop mà run thôi. đỡ phải dùng đến VS nữa, và cũng ko phải tạo APK chạy trên điện thoại.

Bạn hoàn toàn có thể mang thư mục Publish này lên máy window khác để chạy nhé



Có thể có cách khác nữa nhưng mình chỉ biết các này thôi, ai biết cách ngắn gọn hơn thì share với

+ Bạn cũng có thể build lua-tests với cách tương tự nhưng nhớ chú ý file json là .lua nhé

Chào và hẹn gặp lại các bạn ở bài sau
More about

Cách xài chùa phầm mềm TexturePacker 3.3.4 vĩnh viễn

Người đăng: share-nhungdieuhay on Thứ Tư, 28 tháng 5, 2014

Hi all!

Lâu lâu không viết bài, cũng thấy ngứa ngáy tay chân. Cơ mà tại sếp dạo này chăm chỉ ở nhà, cứ dí việc vào đầu, thành thử không rảnh để nghiên cứu tiếp. Tuy nhiên hôm nay mình sẽ tranh thủ hướng dẫn cho mọi người cách làm 1 thứ rất hay ho.

Hẳn các bạn đã biết, trong Làm game thì ngoài ý tưởng, code nguồn, còn 1 thành phần rất quan trọng khác đó là HÌNH ẢNH, âm thanh. Game bạn có thể không cần âm thanh, nhưng Hình ảnh thì chắc hẳn không thể thiếu.

Mình xin giới thiệu với mọi người 1 phần mềm quản lý file Hình ảnh rất tuyệt vời đó là TexturePacker - http://www.codeandweb.com/texturepacker

Một số tính năng chính của nó:

+ Tạo và quản lý các Sprite Sheet
+ Nén hình ảnh, tối ưu hóa cho chương trình
+ Hỗ trợ nhiều nền tảng Engine nổi tiếng 2D và 3D
+ Hỗ trợ nhiều định dạng: PNG, PSD, SWF, v..v..
+ Publish ra nhiều định dạng phù hợp với các loại Engine ( Plist, pvr, ccz ,....)

Quá tuyệt vời phải không, và giá nó cũng không quá cao ~800k VNĐ thôi. :))




Tất nhiên mình giới thiệu phần mềm này không phải để các bạn mua nó của mình, vì mình có bán đâu. Mà là vì theo truyền thống của người Việt Nam chúng ta vẫn thích dùng đồ chùa hơn. Nên sau đây mình sẽ hướng dẫn các bạn cách đề xài chùa phần mềm rất ngon này.

Các bạn download bản mới nhất ( 3.3.4) tại trang chủ theo Link ở trên. Cài đặt như bình thường thôi, Click and Next là xong.

Bạn bật phần mềm lên, có 2 trường hợp xảy ra

1/ Bạn cài lần đầu

Nó sẽ tự động lựa chọn cho bạn chế độ Trial Pro 6 ngày ( dùng thử bản Pro trong 6 ngày ). Chế độ này bạn được full chức năng, không bị hạn chế bất cứ điều gì. Rất ngon, nhưng chỉ 6 ngày thôi ( hix ) .

2/ Bạn đã cài đặt và dùng hết 6 ngày, bật lên chỉ hiện ra lựa chọn sau














Bạn chỉ được chọn Lite version, với nhiều hạn chế ví dụ, hình ảnh sẽ bị đóng dấu, giới hạn định dạng file,v..v...

(Bản Lite bị giới hạn - rất giống bản Pro nhưng có dòng chữ phái dưới bên phải, chức năng bị giới hạn)



Vậy làm thế nào để được xài chùa mãi mãi đây? Bạn chỉ cần làm theo các bước sau đây:

B1: Bạn mở Registry Editor lên ( Run> gõ vào regedit)
B2: Tìm tới khóa sau :

HKEY_CURRENT_USER\Software\code-and-web.de\TexturePacker\licensing\data




Chú ý vào 2 dòng mình đánh dấu đỏ ( bên phải )
+ expiryDate : là ngày hết hạn, như mình đã cài, và bị hết hạn vào ngày 04-05, Click đúp vào đó và sửa thành 2999-04-05 chẳng hạn. Thế là xong, never hết hạn

+ licenseType: Essential, nghĩa là bạn đang dùng bản Lite, hãy Click vào và sửa thành trial 

Để chắc ăn, bạn có thể thực hiện thêm Bước 3

B3: Chỉnh trong Registry khóa sau về false


Xong rồi đó 

Chúng ta sẽ được dùng trial phiên bản Pro vĩnh viễn nhé

(Hãy chú ý thời hạn trial của phần mềm qua ảnh bên dưới )



những 359711 ngày ~ 100 năm ( Chỉnh 1000 năm cũng được )

Thử Test nào, xem có bị gì không, Oh NOOOOOOOOOO!!!!!!!!

(Đã bị đóng dấu "kiểm dịch")

Nhưng các bạn đừng lo, mình đã tìm ra được 1 cách khắc phục bệnh này. Lúc đầu cũng loay hoay, rầu lòng phết, xong cuối cùng cách của mình cũng khá đơn giản. 

Bạn chú ý ở hình dưới này, cái expiryDate là ngày 2014-04-05, đến thời điểm này 28/5, đã bị hết hạn. Phần mềm nó lưu lại ở đâu đó ( chịu ko tìm ra ). Do đó nó sẽ vẫn đóng dấu "kiểm dịch" khi ta Publish, mặc dù thời gian Trial là 100 năm ( khi chỉnh ở trên )


Mình sẽ bày với các bạn 1 cách đơn giản đó là, CHỈNH THỜI GIAN CỦA HỆ THỐNG về trước thời điểm hết hạn này là xong, ( Bạn tích vào đồng hồ trên Startbar Window ấy, chọn dòng rồi Change date and time settings, rồi chỉnh thôi) ví dụ mình chỉnh giờ hệ thống về thời điểm 2013-04-05 , lùi hẳn 1 năm đi cho ăn chắc. Và đây là kết quả sau khi chỉnh thời gian. ( Nhớ là khi chỉnh time xong, bạn phải tắt phần mềm TexturePacker đang chạy rồi chạy lại nhé, mới có hiệu quả )


Giờ thì dùng thoải mái rồi, không bị đóng dấu, ko bị giới hạn tính năng, không giới hạn thời gian. Mình test được mấy ngày mà chưa bị vấn đề gì. Mọi người cùng Test nhé.

Việc chỉnh thời gian có thể khiến 1 số phần mềm gặp lỗi khi chạy đó, các bạn chú ý nhé. Tuy có hơi phiền 1 chút khi chỉnh thời gian nhưng giá trị mang lại khá lớn nhỉ, 800K, hehe. Khi nào làm game có tiền Donate sau cũng được. Chúc các bạn thành công.

Bên lề 1 chút: 

+ Bộ TexturePacker + Physics Editor của CodeAndWeb thực sự là 1 bộ đôi hoàn hảo để làm game 2D, thậm chí 3D, nhưng tiếc là Physics Editor chưa có bản C.Rack nào trên mạng hết.
+ Bạn nào có quen cao nhân Hack, nhờ Crack giúm nhé, nếu không có thể mua chỉ với 448K/năm, hỗ trợ thanh toán bằng tiền Việt tại đây http://sites.fastspring.com/codeandweb/product/all

Ngoài ra các bạn có thể tìm hiểu phần mềm tạo Sprite Sheet khác là ShoeBox, cũng rất hay, có thêm cả mấy chức năng tách ảnh từ Sprite Sheet, các bạn hãy tìm hiểu thêm.

Về phần mềm Physics, mình giới thiệu 1 số phần mềm sau

+ R.U.B.E ( có lẽ là hay nhất ) 30$ mua bằng Paypal
+ Physics Editor ( hay thứ nhì ) 448K
+ Physics Body Editor ( open Source )
+ TS4 ( free, online ) http://ts4.us/tools/box2deditor.html

Các bạn lựa chọn nhé.

ĐÃ CÓ BẢN PATCH cho TP 3.5.3 + PE 1.0.9

Cảm ơn bạn vn kakalat đã cung cấp bản Patch tốt nhé

TexturePacker 3.5.3 nhé, DOWNLOAD tại đây ( Down về quẳng vào thư mục cài đặt ) - Chú ý là win 64 hay win 32 đều dùng bản cài TexturePacker 3.5.3 cho win32 nhé

Physics Editor 1.09, tại đây ( Down về sửa tên lại thành PhysicsEditor rồi quẳng vào thư mục cài đặt là xong )

Trọn bộ Phần mềm TP 3.5.3 + PE 1.0.9 và Patch tại đây



Hẹn gặp lại các bạn trong các bài học sau.
More about

Video - Hướng dẫn cài đặt Cocos2d-x V3.0 FINAL - Install Cocos2d-x v3.0 Final - 100% Working

Người đăng: share-nhungdieuhay on Thứ Tư, 30 tháng 4, 2014

Lần đầu làm Video, có gì sai sót, mọi người bỏ qua. Quay đi quay lại 3-4 lần thôi,

Các bạn chú ý theo dõi kỹ nhé

Đoạn cuối có Bonus 1 tí, Các bạn xem và ủng hộ



Các Video lần sau mình sẽ làm công phu hơn
More about