CCMotionStreak

#ifndef __CCMOTION_STREAK_H__

#define __CCMOTION_STREAK_H__


#include "CCProtocols.h"

#include "textures/CCTexture2D.h"

#include "ccTypes.h"

#include "base_nodes/CCNode.h"

#ifdef EMSCRIPTEN

#include "base_nodes/CCGLBufferedNode.h"

#endif // EMSCRIPTEN


NS_CC_BEGIN


/**

 * @addtogroup misc_nodes

 * @{

 */


/** MotionStreak.

 Creates a trailing path.

 */

class CC_DLL CCMotionStreak : public CCNodeRGBA, public CCTextureProtocol

#ifdef EMSCRIPTEN

, public CCGLBufferedNode

#endif // EMSCRIPTEN

{

public:

    CCMotionStreak();

    virtual ~CCMotionStreak();


    /** creates and initializes a motion streak with fade in seconds, minimum segments, stroke's width, color, texture filename */

    static CCMotionStreak* create(float fade, float minSeg, float stroke, ccColor3B color, const char* path);

    /** creates and initializes a motion streak with fade in seconds, minimum segments, stroke's width, color, texture */

    static CCMotionStreak* create(float fade, float minSeg, float stroke, ccColor3B color, CCTexture2D* texture);


    /** initializes a motion streak with fade in seconds, minimum segments, stroke's width, color and texture filename */

    bool initWithFade(float fade, float minSeg, float stroke, ccColor3B color, const char* path);

    /** initializes a motion streak with fade in seconds, minimum segments, stroke's width, color and texture  */

    bool initWithFade(float fade, float minSeg, float stroke, ccColor3B color, CCTexture2D* texture);


    /** color used for the tint */

    void tintWithColor(ccColor3B colors);


    /** Remove all living segments of the ribbon */

    void reset();


    /** Override super methods */

    virtual void setPosition(const CCPoint& position);

    virtual void draw();

    virtual void update(float delta);


    /* Implement interfaces */

    virtual CCTexture2D* getTexture(void);

    virtual void setTexture(CCTexture2D *texture);

    virtual void setBlendFunc(ccBlendFunc blendFunc);

    virtual ccBlendFunc getBlendFunc(void);

    virtual GLubyte getOpacity(void);

    virtual void setOpacity(GLubyte opacity);

    virtual void setOpacityModifyRGB(bool bValue);

    virtual bool isOpacityModifyRGB(void);


    /** When fast mode is enabled, new points are added faster but with lower precision */

    inline bool isFastMode() { return m_bFastMode; }

    inline void setFastMode(bool bFastMode) { m_bFastMode = bFastMode; }


    inline bool isStartingPositionInitialized() { return m_bStartingPositionInitialized; }

    inline void setStartingPositionInitialized(bool bStartingPositionInitialized) 

    { 

        m_bStartingPositionInitialized = bStartingPositionInitialized; 

    }

protected:

    bool m_bFastMode;

    bool m_bStartingPositionInitialized;

private:

    /** texture used for the motion streak */

    CCTexture2D* m_pTexture;

    ccBlendFunc m_tBlendFunc;

    CCPoint m_tPositionR;


    float m_fStroke;

    float m_fFadeDelta;

    float m_fMinSeg;


    unsigned int m_uMaxPoints;

    unsigned int m_uNuPoints;

    unsigned int m_uPreviousNuPoints;


    /** Pointers */

    CCPoint* m_pPointVertexes;

    float* m_pPointState;


    // Opengl

    ccVertex2F* m_pVertices;

    GLubyte* m_pColorPointer;

    ccTex2F* m_pTexCoords;

};


// end of misc_nodes group

/// @}


NS_CC_END


#endif //__CCMOTION_STREAK_H__


转载于:https://www.cnblogs.com/sssssnian/p/3748639.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值