今天又是让人脱发的修复bug环节,先来看看有什么bug:
1、在缩放操作的时候,有两个线程对同一个字典操作了,出现了以下bug:
图1我决定加个锁;
2、有时候鼠标move这个输入会在离开窗口的时候null,如果组件管理部分没有刷新完成会出现以下bug:
图2因此我决定上个锁,并且把置null删除,让它不null了,反正位置不会变;
3、由于在快速移动鼠标的时候,可能会导致连接长度变成0,因此导致一个小块都没有了,无法更新长度,为了应对这种情况,
当长度小于一个小块的长度时,置长度为一个小块长度;
4、为每个组件加一个新函数,复选判断,判断组件是否在这个矩形范围内,选中就返回true,没有选中就返回false;
图3这下代码简洁多了,另外扩展性也很好;
5、我为连接组件也加了复选判断函数,只要全部小块没有被全框住,就不会判断为这个连接组件被选择:
图4 图5 图6 图76、写了一个连接的单击选定函数,也叫碰撞函数,就是说如果鼠标停在那个地方,连接就会高亮,
说实话这个比上面那些函数要复杂,相当于这个坐标是否落在这个不规则几何图形的判断(这个写+调试大概一小时⑧,太菜了):
图8 图9 图107、滚轮操作和移动操作一起用的话会导致组件错位,所以我把它们弄成互斥事件了;
今天到此结束###&&&
上一篇日记:没有
网友评论