30/09/2018, 16:37

Cách add khung vật lý cho đối tượng được tạo ra từ Cocostudio

Mình đang tìm hiểu cocos2d-x để làm game trên dt. Mình sử dụng Cocostudio để tạo ra các animation trong game nhưng khi add vào project thì gặp 1 vấn đề trong việc tạo PhysicsBody cho animation này. Mọi người ai đã từng làm 1 animation có khung vật lý giúp mình nha

Nguyễn Minh Dũng viết 18:50 ngày 30/09/2018

add vào project thì gặp 1 vấn đề trong việc tạo PhysicsBody cho animation này

@huynhlam1991 gặp vấn đề gì nhỉ?

cc: @crossover

Phạm Hoàng Tuấn viết 18:51 ngày 30/09/2018

1 animation có khung vật lý

Cái này có nghĩa là gì bạn ???

Hồ Huỳnh Lâm viết 18:47 ngày 30/09/2018

Tức là 1 Sprite bình thường thì mình tạo được 1 cái khung ô vuông hay hình tròn gì đó bao quanh nó để xét va chạm vật lý ấy.Nhưng đối với animation dạng file .csb thì mình ko tạo được khung đó

viết 18:54 ngày 30/09/2018

mình chưa thử cái này bao giờ.

Phạm Hoàng Tuấn viết 18:49 ngày 30/09/2018

Mình k biết dạng file .csb bạn nạp vào object trong cocos thế nào, chứ ngày trước mình cũng làm CocosStudio, xuất ra file json và hình png, sau đó dùng lệnh sau để nạp :

//Load Animation
extension::CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("Game/Game1/Aminations/Dog/Dog0.png","Game/Game1/Aminations/Dog/Dog0.plist","Game/Game1/Aminations/Dog/Dog.ExportJson");

//Tạo 1 đối tượng aniamtion
Dog=extension::CCArmature::create("Dog");

//Tạo khung cho 1 CCsprite, mình ngĩ thay đối tượng CCsprite = đối tượng animation cũng dc, vì mình xóa hết cấu hình rồi nên k test dc, bạn thử xem

CCRect projectileRect = CCRectMake(
			projectile->getPosition().x - (projectile->getContentSize().width/2),
			projectile->getPosition().y - (projectile->getContentSize().height/2),
			projectile->getContentSize().width,
			projectile->getContentSize().height);

		CCRect projectileRect2 = CCRectMake(
			player->getPosition().x - (player->getContentSize().width/2),
			player->getPosition().y - (player->getContentSize().height/2),
			player->getContentSize().width,
			player->getContentSize().height);

//kiểm tra va chạm (tức là 2 hình giao nhau)

if(projectileRect.intersectsRect(projectileRect2))
{
//Do something
}

Code này mình viết cũng gần 1 năm, k biết cocos2d-x giờ có khác gì k, hy vọng giúp được bạn !

Bài liên quan
0