gpt4 book ai didi

animation - 在 cocos2d 2.x 的 CCAnimation 中将声音与帧同步*

转载 作者:行者123 更新时间:2023-12-03 02:16:46 25 4
gpt4 key购买 nike

如何将音效与动画同步(CCAnimation)

        NSMutableArray* animationframes = [NSMutableArray array];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime01.png"] delayUnits:1 userInfo:nil] autorelease]];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime02.png"] delayUnits:1 userInfo:nil] autorelease]];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime03.png"] delayUnits:1 userInfo:nil] autorelease]];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime04.png"] delayUnits:1 userInfo:nil] autorelease]];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime05.png"] delayUnits:1 userInfo:nil] autorelease]];
[animationframes addObject:[[[CCAnimationFrame alloc] initWithSpriteFrame:[TitleLayer spriteframeForFile:@"title_startanime06.png"] delayUnits:1 userInfo:nil] autorelease]];
CCAnimation* animation = [CCAnimation animationWithAnimationFrames:animationframes delayPerUnit:0.09 loops:1];

我可以以某种方式将调用 block 添加到动画帧数组吗?

或者,如果 CCAnimationFrame 在激活时具有可选的回调/委托(delegate),则它可以工作。

最佳答案

好的,我们所要做的就是:

  • 观察通知 CCAnimationFrameDisplayedNotification。
    它在动画的 Sprite 上调用。
  • 为了
    要广播的通知,需要添加字典
    到你想挂接的 CCSpriteFrame。我添加了一个 NSDictionary
    包含所有 spriteframes 的每个 sprite 的 spriteframename
    因为我需要钩住所有这些,但我想字典可以
    也是空的,只是不是nil .
        animationframe = [[[CCAnimationFrame alloc] initWithSpriteFrame:[cache spriteFrameByName:str] delayUnits:1 userInfo:nil] autorelease];
    animationframe.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:str, @"spriteframename", nil];
    [animationframes addObject:animationframe];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(frameupdatedinbootanimation:) name:CCAnimationFrameDisplayedNotification object:NULL];

  • 然后捕获它
    -(void)frameupdatedinbootanimation:(id)hmm {
    NSLog(@"frameupdatedinbootanimation: %@", hmm);
    Do something here

    关于animation - 在 cocos2d 2.x 的 CCAnimation 中将声音与帧同步*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216560/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com