04 2008 档案

     摘要: 昨天问题是由于把OgreMian目录下的所有头文件和CPP文件都包含进来.而有一些是不用的,我花了几十分钟对比
Ogrenew下OgreMain下的所有文件,大慨有4至5个头文件以及所对应的CPP文件是多余的,而编译程序的时候就是因为
这几个多余的文件而导致链接出错.

编译的时候遇到
下面的问题

1>正在执行生成后事件...
1>命令语法不正确。
1>Project : error PRJ0019: 工具从"正在执行生成后事件..."

查阅OGRE的论坛发现和生成后事件有关,因为拷贝命令没有执行成功
在项目的属性->生成事件->生成后事件->命令行里有如下命令
copy $(OutDir)\$(TargetFileName) $(OGRE_HOME)\bin\$(ConfigurationName)
改成
copy "$(OutDir)\$(TargetFileName)" "$(OGRE_HOME)\bin\$(ConfigurationName)"
  阅读全文

posted @ 2008-04-29 18:32 RichardHe 阅读(1153) | 评论 (5)  编辑 |

     摘要: 今天下OGRE来编译和配置.SDK和源码都下载来,把Dependencies文件夹放置在ogrenew的目录下.
大慨编译半个小时,在DEMO程序中配置属性=>调试=>命令=>$(SolutionDir)Samples\Common\bin\$(ConfigurationName)\$(TargetFileName)
上面的命令不知道为什么要这样设置,就默认的不可以么???
希望高手帮我解释下.谢谢!
并且工作目录也是$(SolutionDir)Samples\Common\bin\$(ConfigurationName)\$(TargetFileName)

自己架设OGRE的例子.把OGREMAIN的程序移到自己的项目中,先建立一个空的解决方案,再和它一样也建立一个OgreMain工程.
把头文件和CPP文件添加到相对应的Header Files和平Source Files目录下,预处理器

WIN32;_DEBUG;_USRDLL;_MT;OGRE_NONCLIENT_BUILD;FREEIMAGE_LIB   阅读全文

posted @ 2008-04-28 18:06 RichardHe 阅读(502) | 评论 (0)  编辑 |

     摘要: 为什么CEGUI0.50生成的**d.dll不能在CEGUI0.60使用呢?
并且0.60生成的DLL也不能在0.50的DEMO程序中使用,兼容性不怎么好!
这个问题起码弄了我3个小时..郁闷.
在研究Falagard skin system中许多的定义,完全记不住.实在是太多了.CEGUI果然是相当的强大.  阅读全文

posted @ 2008-04-25 18:00 RichardHe 阅读(172) | 评论 (0)  编辑 |

     摘要: 今天down了CEImagesetEditor和CELayoutEditor两个CEGUI的编辑工具的源代码.由于下的是最新的版本.也用了VS2005

来编译.但由于这两个工具用到了wxWidgets里面的库.用2005来编译来设置的一些宏.具体参考如下链接
http://www.cnblogs.com/xfxsworld/archive/2007/11/17/962532.html
按照上面的每一个步骤应该是可以完成编译的库的.由于我开始安装的VS2005没有安装SP1,弄的调试不能进行.在网上

找了许久才找到问题所在.sp1比较大,安装也比较久.
然后看下了imageset文件的内容,虽然里面是XML.但是属性表示的结构性确实很好.开始没弄明白的是一张图片是怎么

切割的在里面.通过CEImagesetEditor这个工具可以很好的体现在里面.打开DriveIcons.imageset,Imageset file再到

相应的目录下打开.在Image definitons下面可以代表切割后每  阅读全文

posted @ 2008-04-24 18:16 RichardHe 阅读(323) | 评论 (0)  编辑 |

     摘要: d_TargetWindow到底指的是什么呢?当模式窗口出来时,如果鼠标点击在模式窗口上,那么它d_TargetWindow就代表模式窗口的父窗口,如果不是在模式窗口上,则它d_TargetWindwo表示模式窗口.
以上我是解决在模式窗口下点其它地方的时候可以拖动这个模式窗口的办法.这个方法可以不是最佳,但是功能也算实现.
安装了一个VS2005,用来专门研究CEGUI0.60.看看有什么新的东西.它的编辑工具CELayoutEditor0.60版,以及 CEImagesetEditor-0.6.0.exe.对imageset,scheme和窗口的xml文件里面的格式或者属性所代表的意义等等..
开始对它只是一个小小的了解.接下来的事情可以要更详细的了解里面的东西.因为项目上打算改进以前用的GUI系统  阅读全文

posted @ 2008-04-23 16:50 RichardHe 阅读(189) | 评论 (0)  编辑 |

     摘要: 一直在解决进入游戏后为什么还是会在模式对话框的状态下??
但是游戏的模式对话框窗口却是隐藏的!程序不知道在什么时候调用了对话框脚本,从而出现了这个问题.
先是跟踪在选择了角色后执行的语句.由于调用Lua,无法调试到里面去.
但是在退出游戏的时候还是会调用这个模式窗口,从而知道在退出窗口的时候执行了SystemWindow.lua这个脚本,
这个脚本再调用了我的模式窗口的脚本.
从而我在初始化窗口系统完成之后把这个模式状态取法.再测试一次,问题解决.
开心.总算完成一个小任务了!  阅读全文

posted @ 2008-04-22 11:40 RichardHe 阅读(169) | 评论 (0)  编辑 |

     摘要: 在老版本0.40上修改模式对话框功能.在ceguiwindow.h头文件中添加setModalState方法.参数为bool
................
...........
.........
....
再在脚本中和LUA绑定.在登陆服务器和角色选择时模式对话框都可以用.但在进入游戏主界面时所以操作不能使用,包括MOUSE和KEYBOARD
问题还没解决?  阅读全文

posted @ 2008-04-21 18:09 RichardHe 阅读(130) | 评论 (0)  编辑 |

     摘要: 了解了通过模板来使用单件模式
template class CEGUIEXPORT Singleton
{
protected:
static T* ms_Singleton;

public:
Singleton( void )
{
assert( !ms_Singleton );
ms_Singleton = static_cast(this);//这个this是指的什么???不能理解,谁能帮我说明下么?谢谢
}
~Singleton( void )
{ assert( ms_Singleton ); ms_Singleton = 0; }
static T& getSingleton( void )
{ assert( ms_Singleton ); return ( *ms_Singleton ); } <  阅读全文

posted @ 2008-04-18 18:14 RichardHe 阅读(179) | 评论 (2)  编辑 |

     摘要: 以动手实践为荣,以只看不练为耻。
以打印日志为荣,以出错不报为耻。
以局部变量为荣,以全局变量为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以定义常量为荣,以魔法数字为耻。
以总结思考为荣,以不求甚解为耻。  阅读全文

posted @ 2008-04-18 13:43 RichardHe 阅读(249) | 评论 (0)  编辑 |

     摘要: 对于MFC的模式对话框不知道微软具体是怎么实现的.我想大慨原理就是把焦点只放在当然的对话框上,并且让消息循环也只处理当前的窗口,其它的不处理.
以上只是我的个人理解.不知道有没有说错?
今天在游戏中使用Lua来控制,在CEGUI中,所有窗口挂在一个root的根结点上.设置模式窗口可以把当前弹出来的窗口设为Enable,其它的所有窗口设为disable.当取消或关闭了模式窗口后,要根据所有窗口以前的状态还原回去.
在脚本实现了第一个功能,当弹出模式窗口以后,其它所有窗口不能使用.  阅读全文

posted @ 2008-04-17 17:47 RichardHe 阅读(235) | 评论 (2)  编辑 |

     摘要: 早上一来就看CEGUI,对着CELayoutEditor对界面的编辑就有兴趣,但是程序中是怎么调用的现在没有弄清楚,如何结合Lua一起进行工作?
本来想改下模式对话框的,设计思路如下:  阅读全文

posted @ 2008-04-16 18:04 RichardHe 阅读(171) | 评论 (0)  编辑 |

     摘要: 以前从未用过脚本Lua,早上大慨了解了一下.从基本的语法开始.再到VC用调试;我想在游戏中最大的好处优点可能是不用编译.这个可以节省很多编译时间.其它可能可以防止游戏外挂.
继续研究client;基类iGUIView,包括创建窗口,显示,隐藏窗口等,cCustomGUIView从基类继承下来.具体实现用到CEGUI::Window类.方法窗口布局设计LoadLayout等.渲染包括背景,地图渲染,GUI渲染,小地图渲染等.  阅读全文

posted @ 2008-04-15 18:01 RichardHe 阅读(147) | 评论 (0)  编辑 |

     摘要: 今天到公司刚好一个月.这个月在新公司比在以前公司觉得充实许多.虽然现在还没有正式做任务,但是每天给自己安排东西去学习.因为和现在同事相比,自己以前没有做过网游,自己觉得和他们还有一定的差距.自己要努力,要多问同事!
向他们学习.

今天在用技能编辑器,不明白的是,在运行目录下面有一个datafiels文件夹.下面的zipImg下的xml文件是我们程序写还是策划写的呢?现在游戏的脚本的Lua好像都是策划写的.

客户端的一个问题也没弄清.在跟踪LBUTTON时,想看下人物如何根据MOUSE点击的位置运动到那里面的.但是跟踪不进去.有待去解决.  阅读全文

posted @ 2008-04-14 18:09 RichardHe 阅读(215) | 评论 (2)  编辑 |

     摘要: 周末了,总结下这周.
这周主要任务是完成老大的一系列任务.关于一个团队开发的使用方法;包括SVN+TRAC等.
在本地自己架设TRAC,把源代码通过SVN上传到本地的SVN中.在SVN配置加添加新用户名和密码.以及在TRAC添加管理员和普通用户和密码等.
参考MFC的方法实现cRect,cPoint,cSize三个类的实现.然后上传到SVN.
编译CEGUI和CEGUI_Sample.自己手动建立一个Sample,并配置所有的属性等.
使用MODAL DIALOG并调试运行这个对话框  阅读全文

posted @ 2008-04-12 14:13 RichardHe 阅读(145) | 评论 (0)  编辑 |

     摘要: (一)
手动建立一个CEGUI工程
使用premake生成当然方便,但是无法知道这些SLN的具体设置.所以参照别人的方法自己建立了一个CETUI工程,
步骤如下:
1,创建一个新的解决方案,我的名字为CEGUI_Sample_sln
2,为该工程添加一个新的项目,为CEGUI_Sample_Comm
3,将..\CEGUI-0.5.0\Samples\common文件夹Copy到你的现在的工程目录,再添加到你所建的新项目CEGUI_Sample_Comm中:
将CEGUI-0.5.0\目录下的include,lib和dependencies三个文件夹Copy到你的工程目录.
修改CEGUI_Sample_Comm的属性:
项目-属性-配置属性-C/C++ -常规-附加包含目录
\CEGUI_Sample_sln\CEGUI_Sample_Comm\common\include
\CEGUI_Sample_sln\CEGUI_Sample_Comm\dependencies\include
\  阅读全文

posted @ 2008-04-11 17:49 RichardHe 阅读(322) | 评论 (0)  编辑 |

     摘要: 今天一天在研究CEGUI,3月27日出了0.60版,不过我下的还是0.50,因为项目中用的也是0.50,由于昨天没下载dependencies这个库,所以在编译的时候出了许多错.
从头开始说吧:
1,首先下载CEGUI-0.5.0b,再解压;
2,其次下CEGUI源码包,里面文件夹名字是dependencies,解压后放在CEGUI的根目录;
3,进入CEGUI代码目录的makefiles文件夹,打开premake目录,再根据你的VC的编译器选择build_vs20**的批处理文件;
4,打开premake目录下的CEGUI. sln和CEGUISamples.sln解决方案,之后进行编译就行了
5,在Bin和Lib目录下是编译之后生成的文件.Bin目录下的CEGUISamples生成的exe文件,可以运行.

在调试CEGUISamples,出错了,CEGUI - Exception的错,DefaultResouceProvider::load - VanillaSkin.scheme does not exist,弄了  阅读全文

posted @ 2008-04-10 18:03 RichardHe 阅读(132) | 评论 (0)  编辑 |

     摘要: 给TRAC添加用户和密码

在trac中通过login进入时出现Authentication information not available. Please refer to the installation documentation.

在网上查了许久才解决,没有设置用户.可能通过脚本来创建一个用户和密码, 脚本代码如下:  阅读全文

posted @ 2008-04-09 18:31 RichardHe 阅读(202) | 评论 (0)  编辑 |

     摘要: 今天主要任务在TRAC中建立一个账号admin密码amdin,建立一个group developer把自己加入到developer,把Common,Headers,Modules,Sources,Tests提交到SVN中,然后再导出到本地,在MFC中写了三个类,cPoint,cRect,cSize,进行封装,重载运算符是返回它的一个引用呢,还是就是它的对象,这个问题我个人认为要是有赋值勤的话就返回一个引用,其它就是返回一个值就可以了,如' =''+=''-='返回一个引用比较好.调试无错之后之后再提交到SVN.

编译BOOST,VC7的安装目录不是在C盘PROGRAM下,要自己添加环境变量.到目录还是没成编译成功..问题有待解决.  阅读全文

posted @ 2008-04-08 18:49 RichardHe 阅读(151) | 评论 (0)  编辑 |

     摘要: 今天主要任务还是上周没有完成的东西.就一个SVN就整了一天,而且还是不明不的的弄出来了,一直怀疑是版本兼容问题..

而且TRAC也是一样,最新的版本都不能放在一起使用.还好在网在找到了个几个EXE放在一起可以兼容的应用程序,先安装python-2.4.4,再是 trac-0.10.2.win32,pysqlite-2.3.2.win32-py2.4,clearsilver-0.9.14.win32-py2.4, svn-python-1.4.2.win32-py2.4,这几个版本安装以后,再到命令行下进入python的安装目录,如cd c:\python24

再到它的C:\Python24\Scripts,当到scripts目录后输入命令..\python trac-admin d:\trac initenv, 其中d:\trac为新建的trac目录,其实都默认就行,有一个SVN仓库目录要设置.我在D盘根目录下新建了一个新的文件夹,名字为svnroot, 再在下面新那了一个project目录,右键project,菜单tortoisesvn->crea  阅读全文

posted @ 2008-04-07 19:26 RichardHe 阅读(117) | 评论 (0)  编辑 |

     摘要: 今天上午主要任务写了两个类,不过还没有进行测试,不知道有没有Bug, 可能应该会有的吧.现在搞TDD开发,写了一个东西测试了再加到模块中.

可能这样的代码有可重用性吧.这两个类是cFile类和System类,虽然MFC已经有CFILE类,但是觉得它太庞大,自己写的类是从C底层控制文件fopen,fread,fwrite等.

另一个System封装主要是使用Win32的API.暂时只写了memory内存信息的情况,CPU下次再继续...

下午接到了新的任务.架设Trac,SVN等;SVN到现在为止都没有弄好..import文件始终就是不进去,不知道是不是我的APACHE没有配置还是什么问题.下午效率很低.还有很多问题没有弄.  阅读全文

posted @ 2008-04-03 18:08 RichardHe 阅读(120) | 评论 (0)  编辑 |

     摘要: 今天主要写了两个类,一个是对文件的操作,一个是对文件的查找.考虑到时间问题,就使用了WIN32的API.要是CreateFile,SetFilePointer,GetFileSize,ReadFile,WriteFile再对基封装.这个类叫做cFile.
另一个就是cFileFind类了.使用了API:GetCurrentDirectory,GetFileTime,FindFirstFile, FindNextFile等.同样再对其封装.现在项目代码打算重构.开发使用TDD(测试驱动开发).今天写的代码还没测试过.不知道有没有问题.  阅读全文

posted @ 2008-04-02 17:55 RichardHe 阅读(110) | 评论 (0)  编辑 |

4.1

     摘要: 今天愚人节..还好没有被人愚..

开始调试工程了..主要还是看代码....下午和同事试用了SVN.

蛮好用的..虽然以前没有用过VSS.不过我相信自己可以慢慢适应.  阅读全文

posted @ 2008-04-01 21:00 RichardHe 阅读(153) | 评论 (0)  编辑 |

posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe