仿豪华飞机大战时遇到的问题,求大神

在编写子弹层的时候,添加了Vector <Sprite*> vecBullet 成员变量,但是编译就报错,提示在 < 前面缺少 ;
而且还有一个SpriteBatchNode* bulletBatchNode 的成员变量,但是在后面的成员函数里使用,却提示未定义的标示符,咋回事呢? 代码如下:

// BulletLayer.h
#ifndef __BULLET_LAYER_H__
#define __BULLET_LAYER_H__

#include "cocos2d.h"


class BulletLayer : public cocos2d::Layer
{
public:
    BulletLayer();
    ~BulletLayer();
    
    virtual bool init();
    CREATE_FUNC(BulletLayer);
    
    //子弹渲染,发射子弹的动作,schedule会定期调用
    void shootBullet(float dt);

    //移除子弹
    void removeBullet(Node* pNode);


    //停止发射
    //void stopShootBullut();
    
public:
    Vector vecBullet;
    SpriteBatchNode * bulletBatchNode;
};

#endif


```


// BulletLayer.cpp

#include "BulletLayer.h"
#include "PlaneLayer.h"

USING_NS_CC;

BulletLayer::BulletLayer()
{


}


BulletLayer::~BulletLayer()
{

}
//init()里初始化子弹,包括位置定位
bool BulletLayer::init()
{
    bool bRet = false;
    do 
    {
        CC_BREAK_IF(!Layer::init());
        auto bulletTexture = TextureCache::getInstance()->addImage("bullet.png");
        bulletBatchNode = SpriteBatchNode::createWithTexture(bulletTexture);
        this->addChild(bulletBatchNode);
        this->schedule(schedule_selector(BulletLayer::shootBullet),0.2f);

        bRet = true;
    } while (0);

    return bRet;

}


//发射子弹的动作,schedule会定期调用
void BulletLayer::shootBullet(float dt)
{
    auto planePosition = PlaneLayer::sharedPlane->getChildByTag(AIRPLANE)->getPosition();
    auto planeSize = PlaneLayer::sharedPlane->getChildByTag(AIRPLANE)->getContentSize();
    auto winSize = Director::getInstance()->getVisibleSize();
    auto bullet = Sprite::createWithSpriteFrameName("bullet_1.png");

    bullet->setScale(0.3f);
    bullet->setPosition(Vec2(planePosition.x,planePosition.y + planeSize.height));
    bulletBatchNode->addChild(bullet);

    vecBullet.pushBack(bullet);

    //飞行距离
    float flyLen = winSize.height - planePosition.y + planeSize.height;
    //飞行速度
    float flySpeed = 320/1 ;
    //实际飞行时间
    float flyTime = flyLen / flySpeed ;

    auto planeMoveTo = MoveTo::create(flyTime,Vec2(planePosition.x,winSize.height + planeSize.height/2));
    auto planeMoveDone = CallFuncN::create(CC_CALLBACK_1(BulletLayer::removeBullet,this));
    auto planeSequence = Sequence::create(planeMoveTo,planeMoveDone,NULL);

    bullet->runAction(planeSequence);


}
//移除子弹
void BulletLayer::removeBullet(Node* pNode)
{
    if ( NULL == pNode)
    {
        return ;
    }

    auto bullet = (Sprite*) pNode;
    this->removeChild(bullet,true);
    vecBullet.eraseObject(bullet);

     
}

```


错误提示:

错误    1    error C2143: 语法错误 : 缺少“;”(在“<”的前面) (..\Classes\GameScene.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    2    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\GameScene.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    3    error C2238: 意外的标记位于“;”之前 (..\Classes\GameScene.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    4    error C2143: 语法错误 : 缺少“;”(在“*”的前面) (..\Classes\GameScene.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    5    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\GameScene.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    6    error C2143: 语法错误 : 缺少“;”(在“<”的前面) (..\Classes\AppDelegate.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    7    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\AppDelegate.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    8    error C2238: 意外的标记位于“;”之前 (..\Classes\AppDelegate.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    9    error C2143: 语法错误 : 缺少“;”(在“*”的前面) (..\Classes\AppDelegate.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    10    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\AppDelegate.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    11    error C2143: 语法错误 : 缺少“;”(在“<”的前面) (..\Classes\BulletLayer.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    12    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\BulletLayer.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    13    error C2238: 意外的标记位于“;”之前 (..\Classes\BulletLayer.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    27
错误    14    error C2143: 语法错误 : 缺少“;”(在“*”的前面) (..\Classes\BulletLayer.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    15    error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (..\Classes\BulletLayer.cpp)    d:\gameproject\gameproject\plane\classes\bulletlayer.h    28
错误    16    error C2065: “bulletBatchNode”: 未声明的标识符    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    25
错误    17    error C2065: “bulletBatchNode”: 未声明的标识符    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    26
错误    18    error C2039: “bulletBatchNode”: 不是“BulletLayer”的成员    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    47
错误    19    error C2065: “bulletBatchNode”: 未声明的标识符    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    47
错误    20    error C2227: “->addChild”的左边必须指向类/结构/联合/泛型类型    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    47
错误    21    error C2039: “vecBullet”: 不是“BulletLayer”的成员    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    49
错误    22    error C2065: “vecBullet”: 未声明的标识符    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    49
错误    23    error C2228: “.pushBack”的左边必须有类/结构/联合    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    49
错误    24    error C2065: “vecBullet”: 未声明的标识符    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    76
错误    25    error C2228: “.eraseObject”的左边必须有类/结构/联合    d:\gameproject\gameproject\plane\classes\bulletlayer.cpp    76

我把与Vector相关的所有操作都去掉了,结果还是错误,提示bulletBatchNode未定义,而且还是缺少分号。。。。。

已解决。命名空间的问题 忘记cocos2d::