求问!!自定义类写的create函数出错

个人认为主要出问题的代码如下

//MovingSprite.cpp
using namespace CPPClass;

MovingSprite* MovingSprite::create(const std::string &filename)
{
    MovingSprite *pRet = new MovingSprite();
    if (pRet && pRet->init(filename))
    {
        pRet->autorelease();
    }
    else
    {
        delete pRet;
        pRet = NULL;
    }
    return pRet;

}


bool MovingSprite::init(const std::string &filename)
{
    if (!Sprite::initWithSpriteFrameName(filename)) {
        return false;
    }

    pos = Vec2(0,0); // 一个点会报错
        velocity = Vec2(0,1);
        size=Vec2(20,20); 
         score = 1;

    return true;
}

//FirstScene.cpp
void HelloWorld::MyUpdate(float dt){
    if(Running)
    {            


        auto enemy = MovingSprite::create("HelloWorld.png");
        this->addChild(enemy);
        log("Moving");
}}


```

出现错误File: CCSprite.cpp
Line: 202

Expression: spriteFrame != nullptr
MovingSprite类继承Sprite,在别的工程里也用过这样的格式是没有问题的
为什么呢:6:谢谢大家了!!!

Expression: spriteFrame != nullptr,貌似是图片资源没找到
另外推荐多使用组合而不是继承(把对象Sprite作为类的一个属性即可),cocos2dx中推荐使用组合会更灵活些。

用组合的话,还不如用聚合,指针方便调用Sprite的create方法。
initWithSpriteFrameName会先加载spriteFrame ,如果图片资源没有,那么spriteFrame 就为nullptr了。
检查资源即可

将initWithSpriteFrameName改成initWithFile,可以运行了,但是无法设置位置,精灵一直在原点不变