对于我的生活,我无法弄清楚如何通过引用将 b2Body(Box2d 对象)传递给方法并为其赋值。
void GameContactListener::GetContactInfo(b2Body &hero, b2Body &ground, b2Body &enemy) {
b2Body *b1 = thing1->GetBody();
b2Body *b2 = thing2->GetBody();
// EXC_BAD_ACCESS HERE
hero = *b1;
ground = *b2;
}
// elsewhere
b2Body *hero = NULL;
b2Body *ground = NULL;
GetContactInfo(*hero, *ground);
我可以通过引用为简单int
类型工作,但似乎缺少指针。
编辑,添加方法声明:
void GetContactInfo(b2Body& hero, b2Body& ground, b2Body& enemy);