精灵缩放的问题

我想对一个精灵缩放后,设置其位置,
实际运行显示的位置老是不对,上代码:

    auto sp = Sprite::create( "a.png" );
    
    Widget* no1 = (Widget*)root_widget->getChildByTag( 1000 );
    const Vec2& no1_pos = no1->getPosition();

    auto sp_sz = sp->getContentSize();

    sp->setScale( 0.5 );
    sp->setContentSize( Size( 0.5 * sp_sz.width, 0.5 * sp_sz.height ) ); 
    
    sp_sz = sp->getContentSize();
    sp->setPosition( Vec2( no1_pos.x + 0.5 * 103, no1_pos.y - 0.5 * sp_sz.height ) );

    root_widget->addChild( sp, 1 );

不知道应该怎么解决这个问题,多谢大家!

试一下设置锚点

没必要设置,我就按默认的0.5, 0.5来的。

我摸索出来的方法是:
精灵缩放后,不调用setContentSize就可以,
但是这样,调用精灵的getContentSize获取的是图片的原始大小,
虽然缩放的效果达到了。

因为你设置了contentSize

想获取缩放后的ContentSize 只要把contentSize和缩放倍数乘一下就好了

:15: :7: :7: :7: :7:

— Begin quote from ____

引用第3楼harris于2015-01-11 21:51发表的 :
因为你设置了contentSize

想获取缩放后的ContentSize 只要把contentSize和缩放倍数乘一下就好了 http://www.cocoachina.com/bbs/job.php?action=topost&tid=281178&pid=1218885

— End quote

正确做法

:14: :14: :14: :14: