【Virtual C++ 3D游戏开发】前置知识 一 <工作环境及Win项目初窥>
2012-11-12 18:41
603 查看
本节内容如下:
1.工作环境配置
2.Win项目相关内容
一.工作环境
与JAVA的工作环境不同,WIN环境下进行开发,只需要安装好相应的程序即可,无需进行环境变量之类的设置。IDE:在一般情况下,我使用VS2005进行开发,但以后研究OGRE的时候推荐使用VS2008或VS2010。因为如果使用VS2005+OGRE的开发环境,需要给VS2005打上SP1补丁,还需要另外一个补丁(名字忘记了)。而且,VS2005的SP1补丁安装缓慢,第二个补丁在Win7下安装有些问题。但是,如果使用VS2008+OGRE则无需考虑这些问题。
DirectX SDK:前面已经说过,使用DirectX SDK(Feb 2010),也就是DX11 SDK。DirectX3D的内容我们会在后面有详细的说明,在这里就不多说了。如果找不到SDK的下载地址,可以参考一下前一篇文章。
VC助手:如果想提高代码的编写速度,这个必须有。CSDN上面就可以找到。
鬼火和食人魔SDK:这些第三方的开源引擎会不定期更新,因此,选择一款可以匹配自己编译器和DXSDK的版本即可。
PS:在安装VS的时候如果你不做VB、C#之类的开发,那就去掉那些安装选项。节省安装和升级的时间,也会减少磁盘的占用。
二.Win项目
1.Include和Lib设置
暂时不考虑第三方引擎的SDK设置,毕竟那些更多是我们学习的资料。研究3D开发,自己写才更有乐趣。依次点击工具--选项,在左侧的树形目录中选择项目和解决方案--VC++目录
Include中添加:你的SDK安装目录\Include\
Lib中添加:你的SDK安装目录\Lib\x86\
2.创建一个新的项目
打开VS2005,依次点击新建--项目--在Win32中选择“Win32项目”(快捷键Ctrl+Shift+N)。这样就可以创建一个新的项目了。
3.Win32项目还是MFC项目?
关于这个问题,已经有许许多多的前辈们进行过大量的讨论和实例证明。在这里无须赘述,简而言之一句话,选择Win32项目。MFC有点很多,但是在游戏开发中更多的是需要我们自己根据实际情况进行相应的修改。因此,更加灵活的Win32项目是最好的选择。
4.预编译头文件
使用过MS的IDE的童鞋都知道,如果在建立项目的时候不选择“空项目”,IDE会自动的为你创建一个名为stdafx.h的预编译头文件。他的主要目的之一是为了提高编译时的速度。同时,帮助我们引用一些常用的头文件并且定义一些常用的选项。在VS2005中,IDE为Win32项目自动生成的头文件如下:
其作用显而易见,但事实上在学习过程中,我们未必需要这个预编译头文件。因此我们可以在创建时选择“空项目”。有关这个文件的内容,大家可以在CSDN的博客频道中搜索到很多的相关介绍,有兴趣的可以自己看一下。
5.自己定义预编译头文件
在一些情况下,我们可以自己定义预编译头文件。这会更加灵活的帮助我们提升程序的运行效率和减少其所占的体积等等。比如说如下的几行代码就很有用:
#define WIN32_LEAN_AND_MEAN //去掉程序对MFC的支持 可以算是一个优化选项
#include <windows.h> //这个用处很多 就不具体说了。在这里只是作为例子
当然,你也可以把那些你需要引入的头文件和库文件也定义在这里,便于自己进行管理。
PS:如果使用预编译头文件,那么就需要在每一个.cpp文件内对其进行引用。
End.
Mad.Karl 于 2012.11.12
1.工作环境配置
2.Win项目相关内容
一.工作环境
与JAVA的工作环境不同,WIN环境下进行开发,只需要安装好相应的程序即可,无需进行环境变量之类的设置。IDE:在一般情况下,我使用VS2005进行开发,但以后研究OGRE的时候推荐使用VS2008或VS2010。因为如果使用VS2005+OGRE的开发环境,需要给VS2005打上SP1补丁,还需要另外一个补丁(名字忘记了)。而且,VS2005的SP1补丁安装缓慢,第二个补丁在Win7下安装有些问题。但是,如果使用VS2008+OGRE则无需考虑这些问题。
DirectX SDK:前面已经说过,使用DirectX SDK(Feb 2010),也就是DX11 SDK。DirectX3D的内容我们会在后面有详细的说明,在这里就不多说了。如果找不到SDK的下载地址,可以参考一下前一篇文章。
VC助手:如果想提高代码的编写速度,这个必须有。CSDN上面就可以找到。
鬼火和食人魔SDK:这些第三方的开源引擎会不定期更新,因此,选择一款可以匹配自己编译器和DXSDK的版本即可。
PS:在安装VS的时候如果你不做VB、C#之类的开发,那就去掉那些安装选项。节省安装和升级的时间,也会减少磁盘的占用。
二.Win项目
1.Include和Lib设置
暂时不考虑第三方引擎的SDK设置,毕竟那些更多是我们学习的资料。研究3D开发,自己写才更有乐趣。依次点击工具--选项,在左侧的树形目录中选择项目和解决方案--VC++目录
Include中添加:你的SDK安装目录\Include\
Lib中添加:你的SDK安装目录\Lib\x86\
2.创建一个新的项目
打开VS2005,依次点击新建--项目--在Win32中选择“Win32项目”(快捷键Ctrl+Shift+N)。这样就可以创建一个新的项目了。
3.Win32项目还是MFC项目?
关于这个问题,已经有许许多多的前辈们进行过大量的讨论和实例证明。在这里无须赘述,简而言之一句话,选择Win32项目。MFC有点很多,但是在游戏开发中更多的是需要我们自己根据实际情况进行相应的修改。因此,更加灵活的Win32项目是最好的选择。
4.预编译头文件
使用过MS的IDE的童鞋都知道,如果在建立项目的时候不选择“空项目”,IDE会自动的为你创建一个名为stdafx.h的预编译头文件。他的主要目的之一是为了提高编译时的速度。同时,帮助我们引用一些常用的头文件并且定义一些常用的选项。在VS2005中,IDE为Win32项目自动生成的头文件如下:
// stdafx.h : 标准系统包含文件的包含文件, // 或是经常使用但不常更改的 // 特定于项目的包含文件 // #pragma once // 如果必须将位于下面指定平台之前的平台作为目标,请修改下列定义。 // 有关不同平台对应值的最新信息,请参考 MSDN。 #ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。 #define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。 #endif #ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。 #define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。 #endif #ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。 #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以指定将 Windows Me 或更高版本作为目标。 #endif #ifndef _WIN32_IE // 允许使用特定于 IE 6.0 或更高版本的功能。 #define _WIN32_IE 0x0600 // 将此值更改为相应的值,以适用于 IE 的其他版本。 #endif #define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料 // Windows 头文件: #include <windows.h> // C 运行时头文件 #include <stdlib.h> #include <malloc.h> #include <memory.h> #include <tchar.h> // TODO: 在此处引用程序需要的其他头文件
其作用显而易见,但事实上在学习过程中,我们未必需要这个预编译头文件。因此我们可以在创建时选择“空项目”。有关这个文件的内容,大家可以在CSDN的博客频道中搜索到很多的相关介绍,有兴趣的可以自己看一下。
5.自己定义预编译头文件
在一些情况下,我们可以自己定义预编译头文件。这会更加灵活的帮助我们提升程序的运行效率和减少其所占的体积等等。比如说如下的几行代码就很有用:
#define WIN32_LEAN_AND_MEAN //去掉程序对MFC的支持 可以算是一个优化选项
#include <windows.h> //这个用处很多 就不具体说了。在这里只是作为例子
当然,你也可以把那些你需要引入的头文件和库文件也定义在这里,便于自己进行管理。
PS:如果使用预编译头文件,那么就需要在每一个.cpp文件内对其进行引用。
End.
Mad.Karl 于 2012.11.12
相关文章推荐
- 【Virtual C++ 3D游戏开发】前置知识 二 <Windows环境下的一些重要概念>
- 【Virtual C++ 3D游戏开发】前置知识 三 <Win32窗口程序剖析>
- <<3D数学基础:图形与游戏开发>>读后感
- Android React-Native系列之<一>零基础搭建React-Native开发环境
- <<Android.游戏开发入门](美)Mario.Zechner>>读书笔记-----OpenGL ES概览
- <项目开发>简单的题库管理系统
- Android游戏开发指南<一>背景地图
- 《Cocos2D-iPhone 游戏开发之路》第4节 高仿<Flappy Bird>教程(2)
- < Unity 3D专栏 >游戏中 - 怪物AI基础篇
- 初学Android项目:开发电子市场<第四天>
- <儿童成长乐园>安卓项目开发(三)
- 使用Html5+C#+微信 开发移动端游戏详细教程 :(二)准备工作&开发环境
- nodeJS学习(7)--- WS开发 NodeJS 项目-节2 <安装&设置&启动 mongodb 数据库++遇到的问题>
- <Linux+Qt>Linux下的Qt开发(一)基本背景知识
- 《Cocos2D-iPhone 游戏开发之路》第3节 高仿<Flappy Bird>教程(1)
- < Unity 3D专栏 >实现游戏对象与对象之间通信
- <杂谈1000>笛卡尔的方法论与项目开发
- Revit 二次开发的环境配置<上手版>
- Leetop/Ext-Desktop Web桌面 项目开发实录<持续更新中....>
- unity3D(基于UGUI)网络游戏正在开发中 <一>"最近用UGUI做人物血条"