消格子时一个很深的bug的修复纪录

环境: 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

消格子时一个很深的bug的修复纪录

时间: 2024-12-13 14:22:53

消格子时一个很深的bug的修复纪录的相关文章

调bug心得及一个很二的bug

有时候运行结果错误,但是vs没抛异常,这时可以用trycatch来帮我们捕捉异常. 例如:bug的情况是treeview只显示一个根节点和一个子节点,还不报错,我擦~ private void f_script_Load(object sender, EventArgs e) { List<t_scripts> parents = new t_scriptsBLL().getByParentId(0) as List<t_scripts>; try { foreach (t_scr

Eclipse Luna WTP 与 Tomcat 8 的整合存在一个很头疼的 Bug

之前的开发环境是 Eclipse( Luna Release (4.4.0)) + WTP + Gradle + Tomcat 7,后来打算升级到 Tomcat 8,结果这个整合开发环境就开始不顺畅了. 设置见下图的椭圆红框部分,目的是直接在 src/main/webapp 目录下作为 tomcat 的运行时目录,而不是按照默认的方式发不到 eclipse workspace 的 .plugin 下面. 这样做的好处是可以直接用外部编辑器编辑那些 jsp.css.js 而不用回到 eclipse

记一个很隐蔽的bug

今天,遇到了这样一个问题.这个问题成功的经历了第一轮测试.第二轮测试并成功发布带到线上. 背景 这次测试的内容是一个活动页面,需求的情景是从app内访问链接并进入到这个活动页面,伴随着自动登陆(不需要用户输入用户名和密码,对app的用户登录状态进行获取并进行自动登录). 问题 只有第一次访问活动页面时会返回50x,之后再进入活动页面都不会再返回50x,一切正常. 没能发现问题的原因 因为每天的测试工作要大量的切换hosts,所以很容易出现由于浏览器或app缓存所导致的问题.一般通过刷新.清理缓存

「PowerBI」Tabular Editor 一个对中文世界很严重的bug即将修复完成

之前介绍过Tabular Editor这款开源工具,对PowerBI建模来说,非常好用,可以极大的增强自动化水平. 详细可查看此文章: 「PowerBI相关」一款极其优秀的DAX建模工具Tabular Editor https://www.jianshu.com/p/90ea25906952 很遗憾的一点是,此工具对中文支持不够友好,会出现编辑区中文展示积压的问题. 抱着试一试的态度,向作者提了一个issue(不会写英文,一点关系都没有,现在人工智能时代,随便一个翻译软件出来的结果都很能让人看明

查询oracle sql的执行计划时,一个很重要的视图--dba_hist_sql_plan

本文的编写得到枯荣长老的大力帮助,在此表示感谢. 本文适用的oracle db版本为oracle 10g或者更高版本. 之所以说这个视图很重要,是因为该视图中有一列是在awrsqrpt报告中没有的.这一列就是 filter_predicates列. SELECT plan_hash_value, TO_CHAR(RAWTOHEX(child_address)), TO_NUMBER(child_number), id, LPAD(' ', DEPTH) || operation operatio

Go map中一个很重要的特性

先看一段代码: func main() { m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" for k, v := range m { fmt.Println(k, v) } fmt.Println("-----------------") mm := make(map[int]string) mm[1] = "a" mm[2] = &q

SpriteKit游戏Delve随机生成地牢地图一个Bug的修复

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Delve是一个很有意思的地牢探险类型的游戏,其中每一关的地图都是随机生成的. 至于如何在生成地图时兼顾随机性和一定模式,网上有很多不错的建议.你也可以从Delve的源代码中找到答案(如果学习目的需要源代码的可以Q我,或者自行度娘) 这里只是谈一下源代码中有一个小bug,我们看如何修复它! 随机生成地图是放在LevelHelper.swift文件中,其中结构t

第一次作业:假装这里有一个很响亮的标题

---恢复内容开始--- 一.结缘计算机 缘分可以说是一个很奇妙的东西,喜欢一件事物往往从对它的美好幻想开始.相信许多人想到计算机都会将它与玩游戏联系在一起,对于我却不然,在我看来编程是一个创造的过程--这就是我对于计算机最初的美好幻想.试想通过编写一些代码便能够实现自己心中所想,这难道不是一件令人兴奋的事吗?它执行你的指令,完成你的任务,实现你的想法,这在当时是对我非常有吸引力的,于是我第一志愿便填报了计算机专业. 你认为你的条件如何?其实我并不知道这个问题应该如何回答,物质条件?素质方面?条

一个很好的php分词类库

PHPAnalysis源程序下载与演示: PHP分词系统 V2.0 版下载 | PHP分词系统演示 | PHPAnalysis类API文档   原文连接地址:http://www.phpbone.com/phpanalysis/ 分词系统简介:PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码 更广泛,并且对utf-8编码尤为方便. 由于PHPAnalysis是无组件的系统,因此速度会比有组件的稍慢,不过在大量分词中,由于边分词边完成词库载入,因此内