Связывание методов класса в Cocos2d - PullRequest
0 голосов
/ 17 января 2012

Я работаю над созданием движка 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'

1 Ответ

1 голос
/ 17 января 2012

убедитесь, что вы импортируете класс BulletCache.Вам также нужно инициализировать bulletCache в методе init Player.

Тогда любой метод экземпляра класса BulletCache может быть вызван с помощью

[bullectCache somemethod]

, некоторые методы необходимо заменить на метод в BulletCache.класс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...