0

Box2d 对象有一个 void* m_userData 用户可以存储数据的字段。通常你存储一个指向另一个对象的指针,例如一个指向 sprite 的指针,该指针应在每个系统滴答时使用位置信息进行更新。

我想存储指向另一个对象的指针,但如果我也能存储一点额外的信息,我会很高兴。我可以在指针的最高有效位中做到这一点吗?可以设置对象指针的最高位吗?我的意思是内部存储器只有 512 MB(我猜)。

也许应用程序因此被拒绝?这不是完全未来的证明,而且有点像黑客......

4

1 回答 1

0

指向“另一个对象”的指针可以是您喜欢的任何内容,因此执行此操作的典型方法是创建一个结构/类来保存您想要存储在用户数据中的任何内容,例如:

struct myUserData {

    Object* anObject;
    AnotherObject* anotherObject;
    bool oneExtraBit;//okay, 8 extra bits :)

}

然后您将其中之一设置为用户数据...

myUserData* mud = new myUserData;
mud->anObject = ...;
mud->oneExtraBit = ...;
myBody->SetUserData( mud );
于 2012-09-08T19:12:41.487 回答