【问题标题】:Is it possible to add sounds and effects to an animation plist in Cocos2D是否可以在 Cocos2D 中为动画 plist 添加声音和效果
【发布时间】:2012-01-28 16:47:45
【问题描述】:

我是 Cocos2D 的新手。我正在与几个人一起编写一本交互式“书”,其中包含一些针对无法阅读的年轻人(4 岁以下)的小游戏。 我从构建背景(Cocos2D)开始,能够添加 Sprite(使用 SpriteSheets 和 TexturePacker)并使用 plist 为它们设置动画。我想知道是否可以在 plist 中添加音效。例如:其中一个精灵有一个动画“尖叫”。如果在plist中加入相应的声音就好了!这也使得更具艺术性的人可以创建动画和声音。 我的经验是自己写这段代码太小了。

【问题讨论】:

    标签: ios animation cocos2d-iphone


    【解决方案1】:

    有很多方法可以做到这一点,但我不认为动画 plist 格式应该被破坏以支持其他目的。我倾向于为这种情况创建“元数据”(也可以采用 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]
    
    
     ];
    

    这是来自我的战斗技能规范的单例课程,仅显示了一项技能(众多技能中的一项)。在那里我保留了“skillExecutionController”和“skillAnimationSequencer”所需的所有信息。

    我相信您的游戏最终将需要动画和声音播放之间的多个协调实例。

    【讨论】:

    • 如果不是波兰圣诞树符号就更好了! -.-
    • 实际上颠倒了PolishChrismasTreeNotation .... 从小时候玩惠普装备开始。
    • 好的。我不知道我是否完全理解它,但至少我有一个解决方案的方向。谢谢。
    【解决方案2】:

    不,没有这样的过程,但您可以通过为此安排一个选择器来管理它

    喜欢:

    用于调度[self schedule:@selector(playSound) interval:1.0f];

    -(void)playSound
    {
          [[SimpleAudioEngine SharedEngine]playEffect:@"sound1.mp3"];
          [self unschedule:@selector(playSound)];
    }
    

    【讨论】:

    • 我看到了可能性,我喜欢解决方案的简单性。得三思而后行。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多