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

cocos2dx 3.3 getParentToNodeTransform bug的更多相关文章

  1. cocos2d-x 3.10 PageView BUG

    cocos2d-x 3.10 PageView 拖动滚动到下一个单元,没事件,3.11有修复.

  2. cocos2d-x 2.1.2 bug发现

    1.在做屏蔽触摸时发现 extensions中的CCScrollView类 void CCScrollView::registerWithTouchDispatcher() { CCDirector: ...

  3. cocos2d-x ios8 输入框显示bug

    https://github.com/cocos2d/cocos2d-x/pull/8149

  4. cocos2dx+lua中cc.EventListenerMouse:create()的bug

    今天在调试项目的时候用到了鼠标事件的监听 在创建事件监听器的时候出了问题 cc.EventListenerMouse:create() 这句返回值为nil 原来这是cocos2dx引擎的一个bug,t ...

  5. cocos2d-x CCEditBox 字符不能显示完全的bug

    cocos2d-x CCEditBox 字符不能显示完全的bug (cocos2dx版本 2.2.0)用CCEditBox制作帐号输入框,当输入的内容超过框的宽度时,框里面不会显示当前输入的字符,显示 ...

  6. [cocos2d-x·解Bug]关于cocos2d-x游戏在android锁屏状态下播放Bgm的解决方法

    最近<宠物联萌>在三星App上发布遇到一个问题:如果用户在锁定屏幕时解锁解到一半时取消解锁,这时用cocos2d-x开发的游戏就会出现游戏Bgm会恢复播放,但手机屏幕仍然是锁屏状态的Bug ...

  7. cocos2d-x多分辨率和随后的自适应CCListView的bug修复

    cocos2d-x多分辨率自适配及因此导致的CCListView的bug修复 cocos2d-x是一款众所周知的跨平台的游戏开发引擎.因为其跨平台的特性.多分辨率支持也自然就有其需求. 因此.在某一次 ...

  8. 宝爷Debug小记——Cocos2d-x(3.13之前的版本)底层BUG导致Spine渲染花屏

    最近在工作中碰到不少棘手的BUG,其中的一个是Spine骨骼的渲染花屏,在战斗中派发出大量士兵之后有概率出现花屏闪烁(如下图所示),这种莫名奇妙且难以重现的BUG最为蛋疼.   前段时间为了提高Spi ...

  9. [Cocos2dx Bug] [win32] Function CCFileUtils::fullPathFromRelativeFile forget consider the path separated by '\\'

    [Cocos2dx 2.2.4] [win32平台Bug] const char* CCFileUtils::fullPathFromRelativeFile(const char *pszFilen ...

随机推荐

  1. Coredata — 入门使用

    CoreData的底层实现尽管是使用的sqlite数据库.但是CoreData在使用起来但是和sqlite大相径庭.可能你会发现你连一句sql语句都不要写.CoreData存在于应用程序和持久化存储区 ...

  2. (算法)构造MaxTree

    题目: 给定一个没有重复元素的数组A,定义A上的MaxTree如下:MaxTree的根节点为A中最大的数,根节点的左子树为数组中最大数左边部分的MaxTree,右子树为数组中最大数右边部分的MaxTr ...

  3. C#.NET常见问题(FAQ)-delegate委托链如何使用

    委托链本质就是你把一堆要执行的东西放到一个list里面,当要触发一组事情的时候,就不需要一个一个写一遍了(比如厂里食堂开饭了,这个方法一执行,要让厨师A时间在食堂等候打饭,B类员工在某个时间排队打饭, ...

  4. UISlider设置按钮透明

    UISlider *aslider = [[UISlider alloc]initWithFrame:kCR(, , , )]; [aslider setValue:0.5]; [aslider se ...

  5. wepy - 与原生有什么不同(watcher监听器.)

    <style> </style> <template> <view>监听值:{{num}}</view> </template> ...

  6. No configuration found for the specified action解决办法(转)

    使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:form>标记时,发现控制台总是输出警告信息, 警告信息内容如下: 警告: No configuration fou ...

  7. margin和padding的学习

    你在学习margin和padding的时候是不是懵了--什么他娘的内边距,什么他娘的外边距.呵呵呵,刚開始我也有点不理解,后来通过查资料学习总算弄明确了,如今我来谈一下自己对margin和paddin ...

  8. inode备忘

    文件名 -> inode -> device block 转自:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html 一 ...

  9. iscsi initiator端Note

    iscsi initiator端    (1)安装open-scsi      sudo  apt-get install open-iscsi open-iscsi-utils     (2)cha ...

  10. ios开发之公交卡系统的设计与实现

    // // main.m // Bus-公交 /* 公交一卡通充值系统.有两种功能选择.第一种投入硬币或者纸币 选择购票,另外一种一卡通充值,充值面额是20,50.100 */ #import < ...