第一部分: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));
}