zoukankan      html  css  js  c++  java
  • [Cocos2d-x For WP8]MotionStreak拖尾效果

        拖尾效果是指在在游戏中,一个精灵在运动的过程中会留下一个短暂的轨迹效果,在游戏里面如打斗的特效往往会需要用到这种效果来给运动的增加绚丽的效果。那么在Cocos2D-x里面我们可以使用一种内置的拖动渐隐效果类CCMotionStreak来帮助我们实现这个效果。

    头文件:

    #include <CCMotionStreak.h>

    继承关系图:

    CCMotionStreak类的常用函数如下所示:

    initWithFade 第一个参数是间隐的时间,第二个参数是间隐片断的大小,第三个参数是贴图的宽高,第四个参数是颜色值RGB,第五个参数是贴图的路径或者贴图对象

    tintWithColor 定义闪烁颜色

    setFastMode 置为快速模式,快速模式中,新的点的增加会更快,但是精度会降低 isFastMode 布尔型  返回是否是快速模式

    示例代码:

    //在init方法里面初始化当前的实例
    bool HelloWorld::init()
    {
        bool bRet = false;
    
        do 
        {
            //CCLayer进行初始化,初始化失败跳出循环
            if ( !CCLayer::init() )
            {
                break;
            }
            //获取手机屏幕的大小
            CCSize size = CCDirector::sharedDirector()->getWinSize();
            //接收界面的的触摸事件
            setTouchEnabled(true);
            // 创建转动的对象
            m_root = CCSprite::create("cat.png");
            addChild(m_root, 1);
            m_root->setPosition( CCPointMake(size.width/2, size.height/2) );
            //在转动的对象上面再创建一个拖尾效果的跟踪对象
            m_target = CCSprite::create("cat.png");
            m_root->addChild(m_target);
            m_target->setPosition( CCPointMake(100,0) );
            //创建拖尾效果并且添加到屏幕 
            m_streak = CCMotionStreak::streakWithFade(2, 3, "cat.png", 32, 32, ccc4(0,255,0,255) );    
            addChild( m_streak );
            //创建帧的更新处理方法来处理拖尾效果 
            schedule(schedule_selector(HelloWorld::onUpdate));
            //创建运动的动作
            CCActionInterval* a1 = CCRotateBy::create(2, 360);
            CCAction* action1 = CCRepeatForever::create(a1);
            CCActionInterval* motion = CCMoveBy::create(2, CCPointMake(100,0) );
            m_root->runAction( CCRepeatForever::create((CCActionInterval*)(CCSequence::create(motion, motion->reverse(), NULL)) ) );
            m_root->runAction( action1 );
            bRet = true;
        } while (0);
        //返回成功
        return bRet;
    }
    
    void HelloWorld::onUpdate(ccTime delta)
    {
        m_streak->setPosition( m_target->convertToWorldSpace(CCPointZero) );
    }
  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/linzheng/p/3279235.html
Copyright © 2011-2022 走看看