Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone CCNode在世界空间中的有效尺度_Cocos2d Iphone_Cocos2d X - Fatal编程技术网

Cocos2d iphone CCNode在世界空间中的有效尺度

Cocos2d iphone CCNode在世界空间中的有效尺度,cocos2d-iphone,cocos2d-x,Cocos2d Iphone,Cocos2d X,我试图确定CCNode在屏幕上显示时的“真实”规模,即它在世界空间中相对于其节点空间的内容大小。该节点可能嵌入层次结构的深处,并且具有具有不同比例和倾斜因子的祖先节点。本质上,我试图找出节点的有效scaleX和scaleY因子。这可以通过将节点的边界框转换为世界空间并比较其大小来确定。但是,如何做到这一点呢 inline CCSize effectiveSize(CCNodePtr n) { CCSize s = n -> getContentSize(); CCPoint

我试图确定CCNode在屏幕上显示时的“真实”规模,即它在世界空间中相对于其节点空间的内容大小。该节点可能嵌入层次结构的深处,并且具有具有不同比例和倾斜因子的祖先节点。本质上,我试图找出节点的有效scaleX和scaleY因子。这可以通过将节点的边界框转换为世界空间并比较其大小来确定。但是,如何做到这一点呢

inline CCSize effectiveSize(CCNodePtr n) {
    CCSize s = n -> getContentSize();
    CCPoint v00 = n -> convertToWorldSpace({0,0});
    CCPoint v10 = n -> convertToWorldSpace({s.width,0});
    CCPoint v01 = n -> convertToWorldSpace({0,s.height});
    return {ccpDistance(v10,v00),ccpDistance(v01,v00)};
}

CCSize size0 = myNode -> getContentSize();
CCSize size1 = effectiveSize(myNode);
float effectiveScaleX = size1.width/size0.width;
float effectiveScaleY = size1.height/size0.height;