码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2dx 3.3 getParentToNodeTransform bug

时间:2015-03-11 18:48:47      阅读:145      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!