#ifndef __CCPARALLAX_NODE_H__
#define __CCPARALLAX_NODE_H__
#include "base_nodes/CCNode.h"
/*#include "support/data_support/ccArray.h"*/
NS_CC_BEGIN
struct _ccArray;
/**
* @addtogroup tilemap_parallax_nodes
* @{
*/
/** @brief CCParallaxNode: A node that simulates a parallax scroller
The children will be moved faster / slower than the parent according the the parallax ratio.
*/
class CC_DLL CCParallaxNode :public CCNode
{
/** array that holds the offset / ratio of the children */
CC_SYNTHESIZE(struct_ccArray *, m_pParallaxArray, ParallaxArray)
public:
/** Adds a child to the container with a z-order, a parallax ratio and a position offset
It returns self, so you can chain several addChilds.
@since v0.8
*/
CCParallaxNode();
virtual ~CCParallaxNode();
static CCParallaxNode * create();
virtual void addChild(CCNode * child,unsigned int z,const CCPoint& parallaxRatio,const CCPoint& positionOffset);
// super methods
virtual void addChild(CCNode * child,unsigned int zOrder,int tag);
virtual void removeChild(CCNode* child,bool cleanup);
virtual void removeAllChildrenWithCleanup(bool cleanup);
virtual void visit(void);
private:
CCPoint absolutePosition();
protected:
CCPoint m_tLastPosition;
};
// end of tilemap_parallax_nodes group
/// @}
NS_CC_END
#endif //__CCPARALLAX_NODE_H__