天地之灵学习小组
我们学习小组的OpenGL学习笔记 大家一定要互相折磨呀~~
posts - 150,  comments - 156,  trackbacks - 0
调试过程中出现的问题以及解决办法
1、一运行就RE
原因:忘记调用init()函数,导致两个类没有实例化,直接读取野指针。
解决:在主函数里调用init()函数。
2、发现每次生成的虫子都是一样的,主函数里虽然srand了,却没有达到初始化随机种子的效果。
原因:我傻了,先init()才srand()。= =||
解决:先srand()再init()。
3、发现实际生成的虫子数总比应该生成的少那么一两个。
原因:我只检测了生成的随机虫子是否越界和四周是否构成同颜色的三行或者三列,忘记检测本位置是否原本有虫子导致后生成的符合要求的虫子将原生成的虫子覆盖。
解决:ok()函数里多加一条判断语句
        if ( b_grid_type[x][y] == WORM ) return false;
4、按向右键也是向左移动。
原因:case RIGHT:里面本应++d_x写成了--d_x;
解决:>.<
5、下落时RE。
呃,这个问题很大,心很静的时候解决了,忘记怎么解决的了。大概是重写了很多函数,很多代码这样……
6、生成的药丸总是青色的。
原因:drawCapsule()函数忘记_setColor()了。
解决:给drawCapsule()函数增加一个颜色形式参数并设置颜色。
7、按一下左会向左移动很多很多格。
原因:按键时间虽然感觉很短,可是电脑已经检测到多次了。
解决:用GetTickCount()函数获取当前按键时间,达到10ms以后再做动作。并且用一个static unsigned char变量判断是否真正读入了按键。
8、药丸可以更漂亮些
原因:可爱的糖糖画了好多图图,抢过来用,嘿嘿 ^.^
解决:写了一个readBMP()函数,免得每次读取图片都要增加一大片代码。
×××××××9、血精灵图片读不出来
原因:
解决:
10、不会自己掉落
解决:count每到speed的时候都执行一次fall()函数。
11、最后一横行连续四个消不掉
原因:竟然把16写成了15……
解决:我想以后还是多用点const int之类的东西吧……
×××××××12、新生成的不连接药丸落下时产生的可消四列直至下一次才能消去。
原因:
解决:
13、有时候会生成三个连续同色虫子
原因:有一种情况是,先生成左虫子,后生成右虫子,最后生成中间的虫子
解决:加上这种情况以后,测试30余次,没有问题。
×××××××14、竟然偶然发现连接状态未变化的单独药丸不能落的bug
原因:未知
解决:bug未再出现过……
15、药丸在瓶子最上面的时候不能变化,给玩家带来不便。
解决:empty()函数里添加if ( y == -1 ) return true;处理特殊情况
×××××××16、竟然发现有不为空却颜色为黑的格子,bug啊bug,囧bug,bug总是很难预料的
原因:未知
解决:


我有一个很伟大的计划,就是重写……


FeedBack:
# re: 11月1日_调试过程中出现的问题以及解决办法2_By PureMilk[未登录]
2008-11-01 22:45 | missdeer
GetTickCount利用了时钟中断,精度大概只能达到50多ms,在Windows下如果换用QueryPerformanceFrequency和QueryPerformanceCounter,能达到10ms以下的精度。

另外,建议在决定重写前,看一下Martin Fowler写的《重构:改善既有代码的设计》一书,或许有点其它启发和帮助。  回复  更多评论
  
# re: 11月1日_调试过程中出现的问题以及解决办法2_By PureMilk
2008-11-02 09:38 | 肖赫_王婷婷_王冠_郑燚_孙婷
@missdeer
噢原来是这样,那应该就是last变量很有效了。
哎呀我迟早有一天会变成贾斯金的。  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(6)

随笔分类(149)

随笔档案(150)

同道中人

搜索

  •  

积分与排名

  • 积分 - 35773
  • 排名 - 524

最新随笔

最新评论

阅读排行榜

评论排行榜