Cocos2d x 在缩放后添加精灵也可以缩放

Cocos2d x 在缩放后添加精灵也可以缩放,cocos2d-x,cocos2d-x-3.0,Cocos2d X,Cocos2d X 3.0,我必须精灵A和B(A是人体,B是头)。我想将精灵B添加到精灵A中并一起移动,我通过 A->addChild(B)它就可以工作了。问题是,当我只想缩放身体,然后将头部添加到小身体上(头部应该是正常大小),我就这样做了 A->setScaleY(0.3); A->addChild(B); 但我也得到了B来缩放。如何仅缩放身体,然后将正常大小的头部添加到小身体?B是A的子体,因此将使用A缩放这是正确的。。。我建议您制作第三个精灵C(骷髅)并向其中添加A(身体)、B(头部)精灵。之后,您可

我必须精灵A和B(A是人体,B是头)。我想将精灵B添加到精灵A中并一起移动,我通过
A->addChild(B)
它就可以工作了。问题是,当我只想缩放身体,然后将头部添加到小身体上(头部应该是正常大小),我就这样做了

A->setScaleY(0.3);
A->addChild(B);

但我也得到了B来缩放。如何仅缩放身体,然后将正常大小的头部添加到小身体?

B是A的子体,因此将使用A缩放这是正确的。。。我建议您制作第三个精灵C(骷髅)并向其中添加A(身体)、B(头部)精灵。之后,您可以独立缩放A、B并使用sprite C移动它们,或使用C(骨架)sprite缩放整个人体的所有部分。

解决此问题的两种方法

  • 节点/精灵C

    Sprite A;
    Sprite B;
    Sprite C;
    
    A->setScaleY(0.3);
    
    C->addChild(A);
    C->addChild(B);
    
  • 同时设置B刻度

    float scale = 0.3f;
    A->setScaleY(scale);
    B->setScaleY(1/scale);
    A->addChild(B);
    

  • 由于头部是添加在身体上的,所以身体是头部的父对象,若缩放父对象,则子对象也会缩放。