游戏制作技巧记录

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


小地图

不规则图形显示: 方法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,会生成以下代码:

PrivateSubBuildEvents_OnBuildBegin(SubBuildEvents_OnBuildBegin(ByValScopeAsEnvDTE.vsBuildScope,........) EndSub

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

Dimfull_pathAsString full_path="d:/vsproject/code/version.h"'如果需要该.rc文件中的版本信息,这里需要改成RC文件路径 DimTextAsString UsingfileAsStreamReader=NewStreamReader(full_path) Text=file.ReadToEnd() EndUsing DimpatAsString="#defines+ClientBuildNumbers+([0-9]+)"'这里也需要改成你关心的文本。使用正则表达式 DimrAsRegex=NewRegex(pat,RegexOptions.IgnoreCase) DimmAsMatch=r.Match(Text) Dimold=Val(m.Groups.Item(1).Value) old=old+1 DimresultAsString="#defineClientBuildNumber"&old'这里也是 Text=r.Replace(Text,pat,result) UsingoutputAsStreamWriter=NewStreamWriter(full_path) output.Write(Text) EndUsing

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值