cpSpaceHashEach — 2 проблемы в одной строке

#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, которую вы пытаетесь выполнить.