我正在阅读一本 cocos2D 书籍,并且正在尝试初始化 Radar Dish 对象。动画是在 initAnimations 方法中设置的(在 init 方法中调用),但是从不调用 init 方法。在 GameLayer.m 中,他们使用 createObjectOfType 方法,该方法调用:
RadarDish *radarDish = [[RadarDish alloc] initWithSpriteFrameName:@"radar_1.png"];
所以initWithSpriteFrameName 是RadarDish 的超类的一个init,它设置了Radar Dish。那么 RadarDish.m 的 init 什么时候会被调用?它导致我的程序崩溃,因为动画从未在 init 中设置。