Balloon должен быть классом, каждый Balloon является экземпляром класса Balloon.
Когда вы инициализируете воздушный шар, вы должны сделать:
Balloon* newBalloon1 = [[Balloon alloc] initWithFile:@"balloon-red.png" sound:@"poppedipopp.wav"];
Balloon* newBalloon2 = [[Balloon alloc] initWithFile:@"balloon-blue.png" sound:@"pluppeddi.wav"];
Balloon* newBalloon3 = [[Balloon alloc] initWithFile:@"balloon-green.png" sound:@"flupffrrrrfrrr.wav"];
Метод init делает это:
-(id) initWithFile:(NSString*)imageFile sound:(NSString*)sound
{
if ((self = [super init]))
{
sprite = [CCSprite spriteWithFile:imageFile];
soundFile = sound;
}
}
@interface объявляет CCSprite * sprite и NSString * soundFile в качестве переменных экземпляра.
Когда всплывающее окно должно появиться, вы отправите всплывающее сообщение на всплывающее окно:
[aBalloon pop];
Метод pop реализован следующим образом:
-(void) pop
{
// maybe play an animation
[[SimpleAudioEngine sharedEngine] playEffect:soundFile];
}
Таким образом, воздушные шары становятся автономными объектами, которые знают, что они должны делать, и воздушный шар может быть параметризован во время инициализацииили, возможно, через свойства.
Предложение Бонге о создании воздушных шаров на основе их типа по-прежнему применимо.