Cocos2d-x简单游戏<打飞机>代码实现|第二部分:子弹类

归松
2023-12-01

 第一部分:Cocos2d-x简单游戏<打飞机>代码实现|第一部分:飞机类

 第二部分:Cocos2d-x简单游戏<打飞机>代码实现|第二部分:子弹类

 第三部分:Cocos2d-x简单游戏<打飞机>代码实现|第三部分:引导层



#ifndef __ShootPlane__CCProps__

#define __ShootPlane__CCProps__


#include <iostream>

#include "commonHeader.h"


//声明一个枚举类型

typedef enum {

    propsTypeBomb =4,

    propsTypeBullet =5

}propsType;


//创建一个节点类

class CCProps:public cocos2d::CCNode{

public:

    

    CCProps();//构造函数

    ~CCProps();//析构函数

   static CCProps * create(void);//静态创建节点方法

   void initWithType(propsType type);//初始化节点类型

   void propAnimation();//创建对象

    CC_SYNTHESIZE_RETAIN(CCSprite *,__prop, Prop);

    

public:

   propsType type;

    

};



#endif /* defined(__ShootPlane__CCProps__) */



#include "CCProps.h"

//实现构造函数

CCProps::CCProps():__prop(NULL){

}

//实现析构函数

CCProps::~CCProps(){

    //安全释放

    CC_SAFE_RELEASE_NULL(__prop);

}


//实现初始化创建节点方法

CCProps *CCProps::create(void){

    //实例化一个新的对象

CCProps * pRet =new CCProps();

    //初始化OK后自动释放内存

   if (pRet && pRet->init()){

        pRet->autorelease();

    }else{

        //否则就安全删除

       CC_SAFE_DELETE(pRet);

    }

return pRet;

}

//初始化类型-->指定该节点的类型

voidCCProps::initWithType(propsType type){

    

   this->type = type;

   cocos2d::CCString *propKey =cocos2d::CCString::createWithFormat("enemy%d_fly_1.png",type);

    this->setProp(CCSprite::createWithSpriteFrameName(propKey->getCString()));

   this->getProp()->setPosition(ccp((arc4random()%268)+23,732));


}

//创建动画

voidCCProps::propAnimation(){

   cocos2d::CCMoveTo* act1 =cocos2d::CCMoveTo::create(1,ccp(__prop->getPosition().x, 400));

   cocos2d::CCMoveTo* act2 =cocos2d::CCMoveTo::create(0.2,ccp(__prop->getPosition().x, 402));

   cocos2d::CCMoveTo* act3 =cocos2d::CCMoveTo::create(1,ccp(__prop->getPosition().x, 732));

   cocos2d::CCMoveTo* act4 =cocos2d::CCMoveTo::create(1,ccp(__prop->getPosition().x, -55));

   __prop->runAction(cocos2d::CCSequence::create(act1, act2, act3, act4,NULL));

    

}



 类似资料: