Может ли кто-нибудь объяснить использование указателя этой части кода;
b2Body* b = node;
GameActor* myActor = (GameActor*)b->GetUserData();
b2Body* b = node;
Объявите указатель b
указывающий на то, на что указывает текущий node
.
GameActor* myActor = (GameActor*)b->GetUserData();
Получите какой-то указатель из b
и GameActor
его, чтобы притвориться, что он указывает на объект типа GameActor
. Если указатель действительно указывает на этот тип, myActor
может получить доступ к этому объекту. В противном случае, весь ад вот-вот сломается.
b2Body * b = node;
Это создает указатель типа b2Body с именем b. b указывает на точки узла узла.
GameActor* myActor = (GameActor*)b->GetUserData();
Это создает указатель типа GameActor с именем myActor. myActor указывает на результат функции-члена класса b2Body, называемый GetUserData().
Вы можете разделить вторую строку на две строки, чтобы сделать более понятным, что происходит.
auto * data = b->GetUserData();
GameActor * myActor = (GameActor *)data;
b
илиmyActor
? Вам также может понадобиться показать, как определеныb2Body
иGameActor
.