具体需求:飞机向左移动播放向左移动动画,向右移动播放向右移动的动画
实现思路:cocos2d-x里面提供了Animation类,该类继承Ref和Clonable,并不继承Action基类,所以无法直接传入Node::runAction()方法中,但Animate类却继承了Action类,且可以用Animation类来进行构造。
所以具体实现方法是:用Animation类加载动画,Animate类使用已经加载好的Animation来创建对象,飞机再对Animation类进行runAction();
具体代码如下:
头文件:
#ifndef __PLAYER__H
#define __PLAYER_H__
#include "cocos2d.h"
USING_NS_CC;
enum
{
E_FLY_NONE,
E_FLY_STRAIGHT,
E_FLY_LEFT,
E_FLY_RIGHT
};
class CPlayer:public Sprite
{
public:
CPlayer();
~CPlayer();
static CPlayer* create();
virtual bool init();
void createAnimate();
void changeFlyAnimate(int nFlyState);
bool onTouchBegan(Touch* pTouch, Event* pEvent);
void onTouchMoved(Touch* pTouch, Event* pEvent);
void onTouchEnded(Touch* pTouch, Event* pEvent);
//CREATE_FUNC(CPlayer);
private:
bool m_bMove;
Animate* m_pAnimateS;