Box2d 对象有一个
void* m_userData
用户可以存储数据的字段。通常你存储一个指向另一个对象的指针,例如一个指向 sprite 的指针,该指针应在每个系统滴答时使用位置信息进行更新。
我想存储指向另一个对象的指针,但如果我也能存储一点额外的信息,我会很高兴。我可以在指针的最高有效位中做到这一点吗?可以设置对象指针的最高位吗?我的意思是内部存储器只有 512 MB(我猜)。
也许应用程序因此被拒绝?这不是完全未来的证明,而且有点像黑客......
指向“另一个对象”的指针可以是您喜欢的任何内容,因此执行此操作的典型方法是创建一个结构/类来保存您想要存储在用户数据中的任何内容,例如:
struct myUserData {
Object* anObject;
AnotherObject* anotherObject;
bool oneExtraBit;//okay, 8 extra bits :)
}
然后您将其中之一设置为用户数据...
myUserData* mud = new myUserData;
mud->anObject = ...;
mud->oneExtraBit = ...;
myBody->SetUserData( mud );