首页 > 其他 > 详细

cocos2dx 3.3 getParentToNodeTransform bug

时间:2015-03-11 18:47:56      阅读:420      评论:0      收藏:0      [点我收藏+]

cocos2dx 3.3中getParentToNodeTransform实现如下:

const Mat4& Node::getParentToNodeTransform() const

{

    if ( _inverseDirty ) {

        _inverse = _transform.getInversed();

        _inverseDirty = false;

    } 

    return _inverse;

}

按上面代码,一旦判断出_inverseDirty==true,就用_transform去计算_inverse,但如果此时_transform也是dirty的(存在这种可能),结果就会出错。

下面代码复现这个bug: 

    //----test code to show getParentToNodeTransform bug

    CCNode* node=CCNode::create();
    addChild(node);
    node->setPosition(ccp(100,100));
    
    //node->getNodeToParentTransform();//if you open this line, you can see different output.
    
    Mat4 parentToNodeTransform=node->getParentToNodeTransform();
    cout<<"parentToNodeTransform:"<<endl;
    for(int i=0;i<16;i++){
        cout<<parentToNodeTransform.m<<" ";
    }cout<<endl;

cocos2dx 3.3 getParentToNodeTransform bug

原文:http://www.cnblogs.com/wantnon/p/4330226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!