VC++debug与Release 的变量初始化问题
2013-05-17 09:28
232 查看
记录这篇文章的原因主要是在这几天遇到一个坑爹的问题,详情这样的:
为了学院游戏设计大赛,急急忙忙的赶了几天的代码,最后在Deadline前一天终于可以发布Release了
(惭愧,这也是我们学到现在第一次release),怎知道出来的游戏没有怪物跑过来。
为什么呢?Debug下完全没问题的啊?怎么Release就出问题了?
就像上图那样,等了半天怪都不出来。。。
和小组人员讨论和无数次试验后,我们把怪的位置直接放在屏幕中,发现怪出现以后不会动。
后来认真的检查了一遍有关怪移动的所有函数和变量,唯一发现的就是怪物类的怪物数据结构体里面Moveable变量在创建怪物的时候没有初始化
初始化以后,果然怪就能动了!!
可是为什么Debug下没错呢?
总结,未初始化的bool变量,Debug下默认为True,Release下默认为False;
百度了一下。
发现VS里,debug与Release对未初始化的变量初始化动作是不同的。
网上一大堆有关的资料,目测有不少人中招啊,不过也不能怪别人,谁叫你不初始化变量
——————————————————————————————————————————————————
参考资料原文地址:http://www.cnblogs.com/huaping-audio/archive/2008/08/23/1274833.html
——————————————————————————————————————————————————
为了学院游戏设计大赛,急急忙忙的赶了几天的代码,最后在Deadline前一天终于可以发布Release了
(惭愧,这也是我们学到现在第一次release),怎知道出来的游戏没有怪物跑过来。
为什么呢?Debug下完全没问题的啊?怎么Release就出问题了?
就像上图那样,等了半天怪都不出来。。。
和小组人员讨论和无数次试验后,我们把怪的位置直接放在屏幕中,发现怪出现以后不会动。
后来认真的检查了一遍有关怪移动的所有函数和变量,唯一发现的就是怪物类的怪物数据结构体里面Moveable变量在创建怪物的时候没有初始化
//怪物类的怪物数据结构体 struct MonsterDate {bool Moveable; //怪物行走开关 int Step; //怪物步速 int DistanceToWindow; //怪物诞生地距离屏幕距离 int Type; //怪物种类 int Money; //怪物掉落金币 float HP; //怪物血量 float Power; //怪物攻击力 CSprite *Blood; //怪物血条精灵};
//创建一个新的怪物 pBloodShow=pSpriteManager->CreateSpriteNode(L"Blood",RES_TEX,D3DXVECTOR3(100,100,0),73,14,0,0,D3DXVECTOR3(0,0,0)) ;DateTemp.DistanceToWindow=rand()%70+10; DateTemp.Step= 3; DateTemp.HP= 100; DateTemp.Power= 5; DateTemp.Money = 25; DateTemp.Blood=pBloodShow; DateTemp.Moveable= true; //之前缺少的初始化语句 Monster=((CMyGameManager*)pSpriteManager)->CreateMonsterNode(L"DOG",RES_TEX,4,10,D3DXVECTOR3(0,0,0),85,86,0,0,D3DXVECTOR3(0,0,0),rectClient,DateTemp); vPos=D3DXVECTOR3(rectClient.right+DateTemp.DistanceToWindow,rectClient.bottom-290,0); pMonster->SetPos(vPos); pMonster->Play();
初始化以后,果然怪就能动了!!
可是为什么Debug下没错呢?
总结,未初始化的bool变量,Debug下默认为True,Release下默认为False;
百度了一下。
发现VS里,debug与Release对未初始化的变量初始化动作是不同的。
网上一大堆有关的资料,目测有不少人中招啊,不过也不能怪别人,谁叫你不初始化变量
——————————————————————————————————————————————————
参考资料原文地址:http://www.cnblogs.com/huaping-audio/archive/2008/08/23/1274833.html
——————————————————————————————————————————————————
相关文章推荐
- DEBUG和RELEASE 版本差异及调试相关问题(VS - VC++)
- VC下关于debug和release的不同的问题总结
- VC++ 2005下Debug / Release的问题
- VC程序Debug版本和Release版本运行不一致问题
- VC中Debug和Release出错的问题解决办法
- DEBUG和RELEASE 版本差异及调试相关问题(VS - VC++)
- VC-Debug-Release出错的问题解决办法
- VC程序Debug版本和Release版本运行不一致问题
- VC-Debug-Release出错的问题解决办法
- vc debug 和release 下 ReadFile 问题
- Debug 与 Release 版本 变量 初始化(zz)
- 【转】VC下关于debug和release的不同的问题总结
- VC 6.0 编译Debug和Release 版本库出现的问题?
- 遇到一个debug版本和release版本运行结果不同的问题
- VC下Debug 和Release 区别
- 成员变量初始化的问题
- 在VS中debug时,将未初始化变量都赋值为CC的顿悟
- c++ 类中static变量初始化问题