为什么我继承了Sprite类不能后,不能设置锚点?

直接上代码,这是自己继承的sprite子类:

<pre class="brush:cpp; toolbar: true; auto-links: false;">
class MySprite : public Sprite
{
public:
    CREATE_FUNC( MySprite );
    virtual bool init( );
};

bool MySprite::init( )
{
    if( !Sprite::init( ) )
        return false;

    auto sp01 = Sprite::create( "Circle.png" );
    this->addChild( sp01 );

    return true;
}



下面的是调用:

    auto sp01 = Sprite::create( "Brightness.png" );
    sp01->setPosition( Vec2( 32 , 32 ) );
    sp01->setAnchorPoint( Vec2( 0.5 , 0.5 ) );
    this->addChild( sp01 );

    auto sp02 = Sprite::create( "Flower.png" );
    sp02->setPosition( Vec2( 64 , 64 ) );
    sp02->setAnchorPoint( Vec2( 0 , 0 ) );
    this->addChild( sp02 );

    auto sp03 = MySprite::create( );
    sp03->setPosition( Vec2( 96 , 96 ) );
    sp03->setAnchorPoint( Vec2( 0.5 , 0.5 ) );
    this->addChild( sp03 );

    auto sp04 = MySprite::create( );
    sp04->setPosition( Vec2( 128 , 128 ) );
    sp04->setAnchorPoint( Vec2( 0 , 0 ) );
    this->addChild( sp04 );

```

```


下面的是效果,从下到上分别是sp01,02,03,04,
sp01,02是直接Sprite生成,可以设置锚点,sp03,04是用继承的子sprite生成的,设置锚点就没效果。
 

都没人来告诉下么 :6:

因为你设置的是MySprite的锚点,你那个circle.png是MySprite里又弄了个Sprite,他的锚点还是0.5 0.5

如果你继承了Sprite,操作时还这么用,那还不如继承CCNode

因为你没有设置ContentSize
对一个面积为0的东西设置锚点自然没有意义:13:

谢谢大虾,重新调试了下,果然是这个问题。:875:

3楼没指到点子上,不过还是谢谢3楼。共同学习学习。:858: