vision startup guide C++ 编程

在  vision startup guide 脚本 编程 这一章,我们学习了如何在 vForge 编辑器中使用 Lua 脚本。 在本章中,我们要简单介绍 Vision C++ 编程环节。 

您项目的主要驱动力由 C++ 创造,因为该语言最有可能为您带来最佳的帧数。

 

在本章中,我们要接触一个很棒的 Vision 编程功能,即插件。 通过 Vision 插件,您可以拓展 vForge 组件,为实体图形添加新类型的实体类,并为 vForge“运行游戏”模式添加游戏运行功能。 该指南会引导您达到这样的程度:能够通过 Standalone Templates(独立模板)创建第一个独立的、可执行的引擎插件且让其运行。 

本章所涵盖的主题:

  • 如何使用插件模板
  • 设置编译器
  • 运行基础独立可执行程序
  • 运行引擎插件
  • 接下来该做什么

独立模板

独立模板为您提供了创建项目的快速便捷的手段。 您可在 <VisionSDK>/Source/Vision/Samples/Templates/Project_Template文件夹中找到。 项目模板自带一个插件、主程序、演示组件和一个演示动作。 它也可在 vForge 的 “运行游戏”模式下运行。 

   模板结构

该模板的设置结构如下: 
文件夹 描述
Assets 项目运行所需的主资源。 包括 vScene,如果使用插件,则也包括插件。
Bin Bin 是发布 / 调试和共享主文件夹所在位置。 初始状态下,该文件夹下只有一个 readme 文件和一个批处理文件。 
该批处理文件负责将文件复制到 bin 文件夹下。 
见下一章节。
Source 包含所有用于游戏应用程序和游戏插件的解决方案文件,及其相应的 .cpp / .h 文件。
Readme 设置说明文件。

  设置模板

模板的设置需遵循以下流程,以确保使用正确和最新的 SDK 文件。

模板项目提供各种配置和平台支持,例如:

  • Debug
  • Dev
  • Release
  • Debug DX11
  • Dev DX11
  • Release DX11

如果您不能确定应使用何种配置,请先从 Win32 Debug 或 Release 开始。

我们先从 Project_Template_Empty 模板开始。 您可以在 
 <VisionSDK>/Source/Vision/Samples/Templates 找到该文件

1) 在 Project_Template_Empty 文件夹下,您会找到一个 RUN_ONCE.bat 文件(请使用适合您的 Visual Studio 版本的文件,见 readme.txt)。 运行该文件,将所需的最新版本 SDK 文件释放到 Bin 文件夹中。

 <VisionSDK>/Data/Vision:常用资源

VisionSDK\Bin 文件夹包含 DLL 文件,在这一示例中,您可以在:
<VisionSDK>/ 和 <VisionSDK>/中找到所需文件

2) 在 Visual Studio 中打开一个 ProjectTemplate.sln 解决方案文件。 如果您不能确定应选择何种配置,请使用 ProjectTemplate_Win32_VS2008_DX9.sln。 

您可以在您的 SDK 安装文件夹,即 <VisionSDK>/Source/Vision/Samples/Templates/Project_Template/Source 文件夹下找到该文件。

3) 生成完整的解决方案并运行。 

注: 如果您略过步骤 (1),该项目将编译失败

        提示: 默认状态下,游戏控制为方向键移动、以鼠标移动视角。
您应该得到一个如下图所示的基本场景: 

    改变场景

   您可以更改  Main.cpp 中的变量  StartUpScene,从而便捷地改变所载入的项目默认场景 
char   * StartUpScene =   "Scenes\\Default" ;

    下一步

   该模板提供了一个平台,让您尝试程序员文档中介绍的各种概念和代码。 

插件模板

标准项目模板提供了使用 Vision 引擎插件系统的示例。 插件提供了让您添加自己的组件和实体类类型的手段,这些组件和实体类类型可以在 vForge 中使用;也可在主项目可执行程序中运行。

插件位于 Bin 文件夹下,可自动载入。 

  设置模板

1) 这一次,请定位 Project_Template 文件夹,此外,和上一节所述一样,您需要运行<Root Project folder>/Project_Template/RUN_ONCE.bat中的批处理文件。  

注: 如果略过该步骤,编译将失败。

2) 在 Visual Studio 中打开 ProjectTemplate.sln 解决方案文件。 该文件位于  <Root Project folder>/Project_Template/Source 文件夹。

3) 编译解决方案,将新插件文件 GamePlugin.vPluginD 从配置版本文件夹复制到<VisionSDK>/Bin。 例如,如果您使用 win32 调试版本,则游戏插件可在以下文件夹中找到: 

Bin/win32_net_9-0/debug_dll/DX9

且必须复制到:

<VisionSDK>/

为了让插件被 vForge 载入,该步骤是必须的(见下一章)。

运行程序。 您会看到插件在屏幕上运行的结果。

4) 打开您的 Templates/Project_Template/Assets 文件夹, 确认文件 vForgeManifest.txt 在该文件夹中。 打开该文件,您会看到如下文本:

[Version 1]
LoadEnginePlugin:GamePlugin

当您启动 vForge、打开 
Templates/Project_Template/Assets/StandAloneTemplate.project 项目时,这段 vForgeManifest.txt 中的文本会指示 vForge 载入您刚才编译的插件。 

  vForge 插件

1) 选择应用程序,启动 vForge。 请确保您启动 vForge 时的配置与您之前编译和复制 gameplugin 时的配置完全一样。 在本例中,这一配置为 <VisionSDK>/Bin/win32_net_9-0/debug_dll/DX9/vForge.exe

启动 vForge 后,请打开如下项目:Templates/Project_Template/Assets/StandAloneTemplate.project

然后载入默认场景。 您会发现,该插件已为场景添加了若干额外功能: 对象上多了一个计数器和一个文本标签。 

2) 选择   vForge菜单 → Extras(附加) → ShowPlugins(显示插件)

该操作将打开一个新窗口,您可以在其中找到项目所用插件的全部信息。 选中  Engine Plugins(引擎插件)选项卡,我们就能找到模板所生成的插件。 

3) 接下来,选择  Components(组件)选项卡。 在该选项卡中,我们能看到所有插件所提供的组件,包括项目模板生成的插件的组件。

4) 选中场景中的实体,打开其组件编辑器。 在编辑器中,您可以看到新插件组件已附加到该对象上。 

现在,我们已经看过插件在实际使用中的情况,不妨简单讲解一下代码,看看如何令插件起效。 

  代码

如果还未打开模板解决方案,请打开,并定位到  GamePlugin 文件夹。 该文件夹中包含所有插件运行所需的代码。 
留意  myComponent.cpp 文件;该文件负责创建插件的实体组件部分,包含启动、更新和移除的函数。 就和所有模板代码一样,其中有很多注释,能帮助您了解所使用的函数。 

  控制台操作

控制台操作是可以从游戏内的控制台回调的命令。 按下“~”键可打开控制台,该键位于键盘左上角,在 1 键的左侧。 控制台打开后,键入“myAction”并按回车。

项目模板的 ProjectTemplate/Actions 文件夹中有 TemplateAction.cpp 文件,其中提供了一个示例操作。 

  调试插件

如果您想调试 vForge 中的引擎插件,您要确保 Visual Studio 调试设置中的 DebuggerType(调试器类型)属性设成“native only(仅非托管)”。 否则,Visual Studio 会将您的插件视为托管(因为 vForge 是托管 C# 代码),从而使断点失效。 另外还要确保将 GamePlugin.vPluginD.pdb 复制到您的 Vision  SDK 安装文件夹的 bin 文件夹下,和插件(例如  <VisionSDK>/Bin/win32_net_9-0/debug_dll/DX9 放在一起。 

结语

我们已经了解如何设置供 Vision 引擎使用的编译器 ,也运行了第一个独立项目,并从所提供的模板中创建了插件,还熟悉了 Vision 编程系统。

本章为上手指南的最后一章。 现在,您已具备足够的知识,可以全面深入地探索 Vision 引擎、运用其强大的功能。 关于这套功能全面的游戏开发工具组所具备的强大能力,本指南只揭示了冰山一角。 还有很多内置工具和功能等待您去发现,这些信息、以及大量其他内容,都可在主文档中找到。

现在,您可以深入 Vision 引擎的世界,开启自己的探索之旅了。 

转自:http://anarchy.cn/portal.php?mod=view&aid=42

猜你喜欢

转载自plmkome.iteye.com/blog/2069263