zoukankan      html  css  js  c++  java
  • cocos2dx 3.3 getParentToNodeTransform bug

    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;

    参考:http://www.cocoachina.com/bbs/read.php?tid-287885.html

  • 相关阅读:
    bzoj 1977
    bzoj 3389
    bzoj 1064
    codeforces 424D
    codeforces 425C
    codeforces 425D
    codeforces 427E
    codeforces 425E
    codeforces 429D
    codeforces 429E
  • 原文地址:https://www.cnblogs.com/wantnon/p/4330226.html
Copyright © 2011-2022 走看看