游戏制作技巧记录

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


小地图


不规则图形显示: 方法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 SubBuildEvents_OnBuildBegin( SubBuildEvents_OnBuildBegin(ByValScopeAsEnvDTE.vsBuildScope,........) EndSub

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

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 = " #defineClientBuildNumber " & 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。

你可能感兴趣的:(ios,游戏,正则表达式,项目管理,ide)