• [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) );
    }
  • 相关阅读:
    quick-cocos2d-x游戏开发【5】——创建菜单
    cocos2d-x3.0 lua学习(一个)
    hdu 3001 Travelling (TSP问题 )
    朱重组成功,?(行家都知道,几乎回答)
    无人机DLG生产作业流程
    自己定制个人无人机需要的准备工作的内容
    C# 多线程网络爬虫
    [转] c#中 多线程访问winform控件
    C# WinForm中 让控件全屏显示的实现代码
    5.数据绑定和表单标签库
  • 原文地址:https://www.cnblogs.com/linzheng/p/3279235.html
Copyright © 2020-2023  润新知