我想創建一個聯繫偵聽器,以便我能夠在來自不同類的精靈集合時創建關節。我發現了一個有用的問題和答案,部分幫助了我 - Getting the world's contactListener in Box2D。其中,推薦下面的代碼和insrtuctions:當來自不同類的精靈集合時創建聯繫人偵聽器
std::vector< std::pair<b2Fixture*, b2Fixture*> > thingsThatTouched;
//in BeginContact
thingsThatTouched.push_back(make_pair(contact->GetFixtureA(), contact->GetFixtureB()));
//after the time step
for (int i = 0; i < thingsThatTouched.size(); i++) {
b2Fixture* fixtureA = thingsThatTouched[i].first;
b2Fixture* fixtureB = thingsThatTouched[i].second;
// ... do something clever ...
}
thingsThatTouched.clear(); //important!!
對於這個工作,你需要做的thingsThatTouched列表從接觸監聽功能可見的,所以既可以是一個全局變量,或者你可以設置一個指向它的聯繫偵聽器類中的指針,或者可能有一個全局函數返回一個指向列表的指針。
我使用的是Cocos2d,不知道多少C++。我該如何「在Cocos2d中的」通過聯繫人偵聽器函數「使事物觸摸列表可見?
std::vector< std::pair<b2Fixture*, b2Fixture*> > thingsThatTouched;
是否在ContactListener.h文件中?它在Cocos2d中有什麼不同?謝謝。