Я работаю над созданием движка Bullet, интегрированного с остальным игровым кодом.
Это состоит в том, чтобы сделать класс Player способным вызывать методы из класса BulletCache без сбоя программы (ошибка читает «нераспознанный селектор, отправленный в экземпляр ...»).
Моя попытка интеграции до сих пор состоит в создании объекта BulletCache в интерфейсе класса Player, например ::100100
@interface Player : LevelObject
{
BulletCache *bulletCache;
}
Но я полагал, что нужен конструктор для дальнейшей связи двух классов. ни один из классов не связан непосредственно (класс Player является подклассом нескольких классов, хотя в конечном итоге является подклассом CCNode), хотя оба являются подклассами CCNode
Может ли кто-нибудь дать мне дополнительные советы о том, как дополнительно связать два класса, чтобы методы класса Player могли вызывать методы BulletCache?
edit: поскольку я получал бесконечный цикл, а консоль продолжала сообщать об ошибке, связанной с CCSprite, в классе BulletCache, я поставил точку останова рядом с методом BulletCache:
CCSpriteFrame* bulletFrame = [[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:@"bullet1big e0000.png"];
И запустил "Build & Debug." После нажатия кнопки «Новая игра» в главном меню консоль отобразила журналы загрузки, а затем быстро остановилась, в нижней части консоли появилось сообщение:
«GDB: остановлен на точке останова 1 (количество обращений: 1) '-init-Line 84' В строке 84 я ставлю точку останова, поэтому похоже, что у программы возникают проблемы с этим кодом. Но это не выглядит неправильно, и методы должны совпадать - я не получил никакого 'Предупреждение: -spriteFrameByName может не отвечать на CCSpriteFrame'