zoukankan      html  css  js  c++  java
  • CCSprite: fade 效果切换图片

    //CCSprite+Animation.h
    #import "CCSprite.h"
    
    @interface CCSprite (Animation)
    
    + (void)fadeWithOldSprite:(CCSprite *)oldSprite newSprite:(CCSprite *)newSprite callFuncTarget:(id)target callFuncAction:(SEL)action fadeDuration:(NSTimeInterval)duration;
    @end
    
    //CCSprite+Animation.m
    #import "CCSprite+Animation.h"
    #import "CCActionInterval.h"
    #import "CCActionInstant.h"
    
    @implementation CCSprite (Animation)
    
    + (void)fadeWithOldSprite:(CCSprite *)oldSprite newSprite:(CCSprite *)newSprite callFuncTarget:(id)target callFuncAction:(SEL)action fadeDuration:(NSTimeInterval)duration
    {
        [oldSprite.parent addChild:newSprite z:oldSprite.zOrder];
        CCFadeOut *fadeOut = [CCFadeOut actionWithDuration:duration];
        CCCallFunc *callFunc = [CCCallFunc actionWithTarget:target selector:action];
        CCSequence *sequence = [CCSequence actionWithArray:@[fadeOut, callFunc]];
        [oldSprite runAction:sequence];
        
        CCFadeIn *fadeIn = [CCFadeIn actionWithDuration:duration];
        [newSprite runAction:fadeIn];
    }
    @end

    实现3秒切换图片

    - (void)startToFadeSprite
    {
        static NSString *imageNames[] = {
            @"sample_img@2x.png",
            @"sample_img2@2x.png",
            @"sample_img3@2x.png",
            @"sample_img4@2x.png"
        };
        static NSInteger index = 0;
        static NSInteger imageCount = 4;
        
        if (index == imageCount) {
            index = 0;
        }
        
        if (fading == NO) {
            fading = YES;
            photoTemp = [CCSprite spriteWithFile:imageNames[index]];
            photoTemp.textureRect = photo.textureRect;
            photoTemp.anchorPoint = photo.anchorPoint;
            photoTemp.position = photo.position;
            photoTemp.scaleX = photo.scaleX;
            photoTemp.scaleY = photo.scaleY;
            [CCSprite fadeWithOldSprite:photo newSprite:photoTemp callFuncTarget:self callFuncAction:@selector(fadeFinished) fadeDuration:0.3];
            index++;
        }
    }
    
    - (void)fadeFinished
    {
        [self removeChild:photo];
        photo = photoTemp;
        fading = NO;
        
        CCDelayTime *delay = [CCDelayTime actionWithDuration:2.7];
        CCCallFunc *callFunc = [CCCallFunc actionWithTarget:self selector:@selector(startToFadeSprite)];
        [self runAction:[CCSequence actions:delay, callFunc, nil]];
    }
    
    
    //init
    photo = [CCSprite spriteWithFile:@"sample_img@2x.png"];
    [self addChild:photo];
    
    //just after
    [self startToFadeSprite];
  • 相关阅读:
    asp.net web.config配置节说明
    CCS2.2和CCS3.1在读写GEL文件上的区别之一
    Vs2008界面环境重置
    常用扩流电路分析
    CCS2.2和CCS3.1在读写GEL文件上的区别之二
    暂时中断DSP学习了
    word中取消自动目录超链接的方法
    DM642图像平移程序学习
    DM642图像处理程序的主要结构
    IT蚁族:蜗居和逃离
  • 原文地址:https://www.cnblogs.com/ihojin/p/ccsprite-fadein-fadeout.html
Copyright © 2011-2022 走看看