消格子时一个很深的bug的修复纪录
2024-10-19 02:19:37
环境: cocos2d-x 2.2.2 jsb
条件:当快速在格子中来回拖拽选取时,会一直在计算指尖和格子的真实区域是否碰撞,
报错:touchMOve时由于不停的调用BOxItem的getValidRectangle方法,
即不停的在此方法内执行 node.getContentSize().witdh,
经过好几个小时的检测,发现问题就在这一行,xcode里报错的提示显示的是框架里的touchMove相关的代码,看不出具体问题,大概知道了是在touchMOve时F出的问题
修复办法:在BoxItem里创建如下两个变量,用来纪录m_icon的宽和高,这样touch时就避免了重复访问node的getContentSize().width /.height,
m_iconRealWidth:0,
m_iconRealHeight:0,
这样就不会再报错了。
总结:项目中对于显示对象的大小使用,尽量用变量来缓存,而不是每次都调用node.getContentSize().width
最新文章
- 读书笔记 —— 《css秘密花园》
- javascript对象引用与赋值
- struts2.0的工作原理
- 学习java随笔第五篇:流程控制
- hough变换是如何检测出直线和圆的?
- fopen中的mode(20161115)
- 转每天一个linux命令(3):pwd命令
- 我和Python
- hdoj 4325 Flowers 线段树+离散化
- 为何IntelliJ IDEA比Eclipse更好
- 【玩转开源】制作Docker镜像
- rsyslog队列说明文档
- 6个顶级Python NLP库的比较!
- 升级pip后出现ImportError: cannot import name main
- c# pictureBox1.Image的获得图片路径的三种方法 winform
- 46. 47. Permutations and Permutations II 都适用(Java,字典序 + 非字典序排列)
- [C#][Report]Cry
- UVA12888 【Count LCM】(莫比乌斯反演)
- Linux虚拟机下mysql 5.7安装配置方法图文教程
- notepad++与ISE/Vivado关联