#ios #cocos2d-iphone #chipmunk
#iOS #cocos2d-iphone #бурундук
Вопрос:
Я пытаюсь понять основы бурундука. В каком-то руководстве я нашел строку:
cpSpaceHashEach(space->activeShapes, amp;updateShape, nil);
Но я получаю 2 ошибки здесь:
1) Неявное объявление функции недопустимо в C99
2) Ни один член с именем ‘activeShapes’ в ‘struct cpSpace’
Что не так? Почему это не работает? Нужно ли мне включать что-то еще?
Ответ №1:
Просто чтобы уточнить с помощью некоторого кода на случай, если кто-то еще столкнется с этой проблемой, вместо
cpSpaceHashEach(space->activeShapes, amp;updateShape, nil);
вы бы использовали:
cpSpaceEachShape(space, amp;updateShape, nil);
По-видимому, это изменение было сделано для того, чтобы легче было сохранить код на будущее, поскольку activeShapes не предназначались для использования таким образом.
Ответ №2:
Копание в журнале изменений: (https://github.com/slembcke/Chipmunk-Physics/blob/master/VERSION.txt )
Если вы посмотрите, вы найдете это в cpSpace Chipmunk 5.x.* Фигуры были помечены как закрытые члены структуры cpSpace в заголовке. Затем в Chipmunk 6.x частный доступ по умолчанию был отключен, и появилась функция cpspaceachshape(), которая почти точно заменила cpSpaceHashEach() cpSpace.activeShapes, которую вы пытаетесь выполнить.