游戏制作技巧记录

本文将记录我在游戏开发的路上所学到的关于游戏制作的全部技巧

小地图

不规则图形显示: 方法1:使用带透明色的贴图 方法2:使用Alpha贴图做显示模板,使用的时候进行Alpha值的相乘。

点击判断: 方法1:使用近似形状进行鼠标包含检测。 方法2:使用Alpha贴图,在内存中保留一份Alpha贴图,判断鼠标点的Alpha值。

Ogre

从 .mesh文件中获取 mesh 对象

核心思想是使用Ogre规定的文件流读取方式来获取。

方法一:

使用 MeshManager::load(" mesh文件名称");得到。注意,该函数会在Ogre资源管理器中的路径进行查找

方法二:

使用std:ifstream 以 std::ios::binary 方式读取mesh文件

然后使用 Ogre::FileSerializerStream 对象,创建的使用利用刚才的 std::ifstream 对象

然后使用 Ogre::MeshSerializer 对象的 importMesh 方法。

需要注意的是,importMesh函数接受的 mesh指针,必须要有实际空间, 即 Ogre::Mesh* pDest = new Ogre::Mesh( NULL, "dasd", 0, "");

 

 

编译技巧

 

 

VS2005:

每次生成exe文件的时候让版本号自动加1

主要思路是使用宏,在编译之前进行文本替换。 1、打开VS2005,按Alt+F11,启动宏IDE。 2、双击 MyMacros 项目,双击 EnvironmentEvents。 3、在文本编辑器的类名中选择BuildEvents,方法名称选择OnBuildBegin,会生成以下代码:

Private   Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope,........ ) End Sub

在这个段中添加以下代码:

Dim  full_path  As   String full_path  =   " d:/vsproject/code/version.h "                                     '  如果需要该.rc文件中的 版本信息,这里需要改成RC文件路径 Dim  Text  As   String Using  file  As  StreamReader  =   New  StreamReader( full_path)     Text  =  file.ReadToEnd() End   Using Dim  pat  As   String   =   " #defines+ClientBuildNumbers+([0-9]+) "       '  这里也需要改成你关心的文本。使用正则表达式 Dim  r  As  Regex  =   New  Regex(pat, RegexOptions.IgnoreCase) Dim  m  As  Match  =  r.Match(Text) Dim  old  =   Val (m.Groups.Item( 1 ).Value) old  =  old  + 1 Dim  result  As   String   =   " #define ClientBuildNumber  "   &  old             '  这里也是 Text  =  r.Replace(Text,pat,result) Using  output  As  StreamWriter  =   New  StreamWriter(full_path)     output.Write(Text) End   Using

4、编译一下这个宏。这样每次执行Build命令的时候,头文件 version.h 中的 ClientBuildNumber 每次+1。

 

你可能感兴趣的:(游戏,正则表达式,Build,exe,Path,文本编辑)