0
使用box2d
和cocos2d,我需要創建一些b2body
模型,其中該主體將是一個線或一個整體(由具有編碼的向量組成),可以通過球「可傳遞」 ,當球高速擊中他時。box2d中的易破牆
所以,換句話說,就像在現實世界中一樣,材料應該柔軟,可以被打破。
零密度不這樣做。 有沒有另外一種方法呢?
謝謝。
使用box2d
和cocos2d,我需要創建一些b2body
模型,其中該主體將是一個線或一個整體(由具有編碼的向量組成),可以通過球「可傳遞」 ,當球高速擊中他時。box2d中的易破牆
所以,換句話說,就像在現實世界中一樣,材料應該柔軟,可以被打破。
零密度不這樣做。 有沒有另外一種方法呢?
謝謝。
爲什麼要一個?????使用磚塊(較小的粒子),使牆壁碰撞會碰壁.....
獲得此功能的另一種方法是使用contactListener的presolve ....在那裏檢查兩個物體之間的碰撞,如果一個的速度比磨碎器禁用某個值組接觸...
從我的遊戲之一把這個代碼.....
`enter code here`if ((userDataObjectA.userDataType == kObjectTypeMotherShip || userDataObjectB.userDataType == kObjectTypeMotherShip) && (userDataObjectA.userDataType == kObjectTypeSaucer || userDataObjectB.userDataType == kObjectTypeSaucer)) {
b2WorldManifold worldManifold;
contact->GetWorldManifold(&worldManifold);
if (userDataObjectA.userDataType == kObjectTypeSaucer) {
b2Vec2 saucerVelocity = bodyA->GetLinearVelocity();
if (saucerVelocity.y > 2) {
contact->SetEnabled(false);
}
} else if (userDataObjectB.userDataType == kObjectTypeSaucer) {
b2Vec2 saucerVelocity = bodyB->GetLinearVelocity();
if (saucerVelocity.y > 2) {
contact->SetEnabled(false);
}
}
}
的大多數遊戲今天易碎的東西,他們已經破裂對象它們可能會斷裂,還有不同的破壞方式。對於像你說的那樣的部分牆壁,你需要一塊一塊地做。只需切割精靈並在這些部分上製作多邊形碰撞區域。 – MahanGM