Можно ли добавить звуки и эффекты к списку анимаций в Cocos2D? - PullRequest
1 голос
/ 28 января 2012

Я новичок в Cocos2D. Я работаю с парой людей над интерактивной «книгой» с несколькими маленькими играми для молодежи (до 4 лет), которые не умеют читать. Я начал с создания фона (Cocos2D) и теперь могу добавлять спрайты (используя SpriteSheets и TexturePacker) и анимировать их с использованием списков. Интересно, возможно ли добавить звуковые эффекты в плист? Например: один из спрайтов имеет анимацию «крик». Было бы очень хорошо, если бы соответствующий звук был включен в список! Это также позволяет анимации и звукам создавать более творческие люди. Мой опыт заключается в том, чтобы написать этот код самому.

Ответы [ 2 ]

0 голосов
/ 29 января 2012

Есть много способов сделать это, но я не думаю, что формат списка анимаций должен быть искажен для поддержки какой-то другой цели. Я склонен создавать «метаданные» (также в формате plist, но может быть в базе данных) для подобных ситуаций. Обычно эти метаданные загружаются в ядро ​​при запуске игры, навсегда. Например, из одной из моих игр, следующий код:

    [self addToDictionary:dic
                  key:@"improvedCheapShot" 
                 name:@"Cheap Shot +" 
    characterClassKey:@"rogue" 
          rankInClass:3 costBP:3 skillSpeed:2 skillPower:150   skillRange:0 
           isMapSkill:NO isMultiTargetSkill:NO
       isHealingSkill:NO isProtectingSkill:NO
           damageType:geDamageTypePhysical 
         effectImpact:geEffectImpactNotApplicable
              toolTip:@"Strikes the weakest foe in melee range, ignoring its defense. Damage is increased by 20%." 
              soundFx:@"sound_fx_skill_sword5.mp3"
  damageAnimationSpec:[GECombatDamageAnimation damageMagicAnimation:geDamageMagicAnimationSoldier   
                                                            playerFile:nil
                                                               CPUfile:@"magie_cheapShot"
                                                                frames:15]


 ];

Это из моего синглтон-класса для battleSkillSpecifications, показан только один навык (из многих). Там я храню всю информацию, необходимую для 'skillExecutionController' и 'skillAnimationSequencer'.

Я убежден, что ваша игра в конечном итоге потребует нескольких случаев координации между анимацией и звуком.

0 голосов
/ 28 января 2012

Нет, такой процедуры нет, но вы можете управлять ей, планируя селектор для этого

Как:

Для планирования [self schedule:@selector(playSound) interval:1.0f];

-(void)playSound
{
      [[SimpleAudioEngine SharedEngine]playEffect:@"sound1.mp3"];
      [self unschedule:@selector(playSound)];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...