俊的blog

游戏开发 C++ DirectX 数学 计算机图形学 SQL Server

返回我的Blog首页

   :: 首页 :: 联系 :: 聚合  :: 管理
  77 Posts :: 0 Stories :: 237 Comments :: 0 Trackbacks
共2页: 1 2 
re: 写代码与写文档[未登录] 李锦俊 2008-07-01 23:21
虽然我也不太喜欢写文档。但是,我做一个模块之前,至少会画一个uml来描述这个模块是如何工作,这样好指导自己以后如何更好的开发好这个模块。至于什么总设计文档之类,这个应该是项目经理之类的需要写的文档,我们小小程序员就涉足不到了。
re: 针对TSE的特效系统[未登录] 李锦俊 2008-06-18 20:41
tge烂代码一堆,tse垃圾代码一大堆
这些都经常遇到,还有一些很难遇到,更隐秘的错误才会导致的出错对话框。
那么晚才睡觉啊?
年轻人要注意身体啊。
re: 创建游戏内核(1) 李锦俊 2008-03-26 16:41
真是牛人啊!代码里一堆一堆的英文注释。看得我晕乎乎
别浮别燥,请注意整体框架,编辑器请一定要使用插件形式来实现,否则以后扩展将成大问题。
re: 一个type2id的程序 李锦俊 2008-03-21 19:06
空明你的程序我越来越怕了。那么多宏+模板,晕啊。
GPG1里那个实现就不错了。多线程模式就另行考虑
没必要,如果是用在游戏中,关键是读取的效率,写入的效率无关重要甚至没有这个需求。
所以,顺序的把文件一个个保存下来到一个文件包里就可以,这样读取速度是最快的。
界面用XTream ToolKits。
我不用BCG。
图形引擎使用Ogre
界面是MFC
re: 魔兽3贴图方法 李锦俊 2007-10-16 16:05
@我是我
等你看懂了再发表评论吧。
任何的if for while都应该加上{},以免引起误会。
另外,对于大段if,小段else的情况,我的做法是在大括号后写一个注释,以免误会。例如
if( 0 == liRet )
{
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
if( 0 == liError )
{
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
if( 0 == liCode )
{
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
if( 0 == liResult )
{
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );

} // if( 0 == liResult )
else
{
printf( "err\n" ); // 现实中代码也是写一行错误日志
}

} // if( 0 == liCode )
else
{
printf( "err\n" ); // 同上
}

} // if( 0 == liError )
else
{
printf( "err\n" ); // 同上
}

} // if( 0 == liRet )
else
{
printf( "err\n" ); // 同上
}
空格不认,我用全角 :)

if( 0 == liRet )
{      
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  if( 0 == liError )
  {      
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
  printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
 if( 0 == liCode )
 {           
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
if( 0 == liResult )
{
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );
   printf( "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n" );

} // if( 0 == liResult )
else
{
   printf( "err\n" ); // 现实中代码也是写一行错误日志
}

 } // if( 0 == liCode )
 else
 {
printf( "err\n" ); // 同上
 }

  } // if( 0 == liError )
  else
  {
 printf( "err\n" ); // 同上
  }

} // if( 0 == liRet )
else
{
  printf( "err\n" ); // 同上
}
谢谢楼主与楼上们的指点。
狂汗!
写少了个叹号啊!
if(!str || 0 == *str)
还是这样好点,够简单明了啊。如果想少打些字符,就这样吧
if(!str || !*str)
足够简洁了。

不过,我还是喜欢用std::string str;
if(str.empty())
这样才叫清晰。毕竟这些效率问题不会影响太多。可读性和稳定性才是最重要的。
要是像我那样粗心大意些少了个叹号,可就得不偿失了。
如果用stl的string话,调用empty不很好么?
当然,如果坚持要用原生char*的话最高效率的还是if(str || 0 == str[0])了
对。代码可重用性很重要。
没学过设计模式的人,在这方面差很远。
所以,我们公司现在招人的先决条件是要懂得运用设计模式。
re: 魔兽3贴图方法 李锦俊 2007-08-28 22:04
@weed
你blog老是打不开
re: 魔兽3贴图方法 李锦俊 2007-08-28 22:00
@weed
地牢围攻2,下回来玩玩先,呵呵。
@z
http://www.cppblog.com/mybios/archive/2007/08/28/31043.html
自己看。知之为知之,不知为不知!

另外,我发东西在我blog,你有权不看。至于是不是秀,你没看我标题么?只是发图留念。
re: 关于CEGUI的String的调试问题 李锦俊 2007-08-11 12:47
VS调试器好像不支持UTF8吧?
re: 用c++,写小型病毒 李锦俊 2007-08-06 13:47
只是几个API的简单使用而已。。循环调用DeleteFile或许更像是病毒的发作行为。。
。。。。。安装2小时才能装好,估计是你安装vs2005的时候全选安装所致。
re: 关于CEGUI的String的调试问题 李锦俊 2007-07-29 21:21
感觉上,utf16已经足够了啊。。
话虽如此,不过都没所谓了,反正做一个宏开关,debug版使用utf16,release版使用utf32就ok了,反正主要是为了方便调试。看不到字符串的内容确实是很恼火的事情
re: 初探ogre 李锦俊 2007-07-29 14:26
显示100个jaiqua,我的笔记本电脑debug版只有1fps,release版达到35fps。ogre大量使用stl的东西,由于stl中对于debug版会有大量的错误检测机制,故而导致速度慢许多。
re: 关于CEGUI的String的调试问题 李锦俊 2007-07-29 14:24
CEGUI,一个开源的GUI库,ogre使用这套界面库作GUI渲染
优点浪费人才啊。哈哈
re: 初探ogre 李锦俊 2007-07-29 10:41
不至于这么吧。。
不知道你是用release还是debug?
ogre渲染效率还是很高的,而你说的50个角色模型问题,我想会是其他原因啊,我的笔记本(双核2G,2G内存,GF7400显卡128显存),SkeletalAnimation 中将#define NUM_JAIQUAS 100设为渲染100个角色模型,能跑35fps,每秒渲染三角形414892个,我想这个速度还是可以接受的。
re: (转)CEGUI 中文输入 李锦俊 2007-07-28 17:25
@包子

又见包子。。。
哈哈
你这个问题,估计是用了0.4版的cegui吧?或者没有开启FreeType系统
re: 深入浅出 perlin noise[未登录] 李锦俊 2007-07-20 12:37
Libnoise不错,不知道你是不是说这方面?
libnoise是一个自动生成噪音点的库,其中可以运用多种算法生成不同的噪音点。我用在地形高度图的自动生成上,呵呵。
@vista
既然不能使用这个,那就使用其他线程模式啊。
re: 关于GOOF的bug问题[未登录] 李锦俊 2007-07-20 10:20
GOOF=Game Object Oriented Framework,是一个游戏引擎(GOOF Engine)和一个用于Ogre的世界编辑器(GOOF Editor)。
PLSM=Paging Landscape Scene Manager,是一个场景管理器。当地形很大时,会用到它。
在Ogre3d.org里有它们的介绍。

GOOF其实从名字就可以看出来,是一个Framework,它只是将游戏引擎所需要的几类东西集合起来。
OGRE只是图形引擎,再音效引擎、网络引擎、物理引擎等等组成一个完整的游戏引擎。
记住OGRE只是图形引擎,不要忘了。OGRE只负责图形的渲染,其他的都不管。
只是有许多人愿意围绕OGRE开发许多插件,而且这些插件可以很好的与OGRE集成。
有了OGRE,只要再找到音效、网络、物理等咚咚,其实你也可以搭建自己的游戏平台的。
@糖块
不好意思,太大了。不好发。
re: 关于GOOF的bug问题 李锦俊 2007-07-18 09:27
@空明流转
游戏开发,本是苦命差事,有何办法。。。
re: 关于GOOF的bug问题 李锦俊 2007-07-17 10:08
这样哦。可能是我跟踪有问题了。谢谢
re: 关于GOOF的bug问题 李锦俊 2007-07-17 09:20
@muf
对于第一种情况,代码会按这个顺序执行
1、itr = mObjects.begin();
2、++itr
3、itr != mObjects.end();
4、循环体
5、++itr
6、itr != mObjects.end();
7、重复4~6步

第二种情况,代码会按这个顺序执行
1、itr = mObjects.begin();
2、itr != mObjects.end();
3、循环体
4、++itr
5、itr != mObjects.end();
6、重复3~5步

至于为什么会这样。仔细看看C++的书然后告诉我吧,我没细看。但是跟踪的结果确实是这样。
@cary
是的,你可以加我QQ,我给你传一份可以直接编译的版本。
谢谢大家的关心~现在生活艰苦啊,不能经受得起辞职了。
I Like 设计模式~~
多写写类似的文章哦。
我还有好多个设计模式还没有理解啊。
不知道什么时候才能有肺癌特效药?
唉。。手术不成功,只切除了肿瘤,癌细胞已经扩散到肺部了,没办法切除。
希望爸爸能快乐点啊
re: friend随笔 李锦俊 2007-02-28 19:03
非模板类的函数实现不可以放在头文件中。h文件是不会被编译的。所以,
void TestClass1::ChangePrivate(TestClass2& test,int change_i)
{
test.i = change_i;
}
放在头文件中,跟完全没有写的结果是一样的。
那个flash时钟是自己放上去的啊。我的电脑配置高,没注意这个问题哦。等我把他删了才行。
说白了。能买你的东西的,要满足以下条件:
1、是小企业(厂)
2、企业中懂电脑的都是菜鸟
3、是你们那里的本地人
4、要你能跟他们吹牛
re: [STL] 循环中erase 李锦俊 2007-02-13 23:31
方法2不错!谢谢。
@cctv
谢谢关注,如果你们公司是在广东的话,我可以去面试谈谈。简历中有我的联系方式。
谢谢大家支持,但愿能找个好工作
re: Pro OGRE 3D Programming 电子版 李锦俊 2007-02-12 15:05
。。。。。。。还以为是发布电子版。。不如把标题改改吧。。
共2页: 1 2