`
plmkome
  • 浏览: 44207 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    ACE Niagara AX Install & Startup Guide

    ACE Niagara AX Install & Startup Guide The following mainsections are in this document: • “Overview”on page 1 • “Preparation”on page 2 • “Connect to the JACE”on page 3 • “Run the ...

    蓝桥杯智能门锁题目源码 常规C/C++编程

    蓝桥杯智能门锁题目源码 常规C/C++编程 【实例简介】蓝桥杯智能门锁题目源码 智能门锁内涵高级按键代码,比较难的地方注释充分 ├── 智能门锁 │ ├── Listings │ │ ├── STARTUP.lst │ │ ├── iic.lst ...

    c++ 转换c# 工具

    在编程领域,这种工具被称为源代码转换器或迁移工具,它们有助于开发人员在不同的编程语言之间迁移项目,尤其在有大量现有C++代码而打算采用C#进行新开发时。 描述 "c++ 转换c# 工具" 证实了工具的主要目标是将C++...

    C++代码转C#

    - 转换的挑战包括:C#的垃圾回收机制与C++的内存管理不同,C#的面向接口编程与C++的面向对象编程有所差异,以及C#的特性如属性、事件和委托在C++中的实现方式等。 4. **配置文件**: - `Demo C# to C++ Converter...

    推荐了多个详细的startup.bat闪退问题解决办法

    "startup.bat 闪退问题解决办法" startup.bat闪退问题是Windows操作系统中一种常见的故障现象,特别是在使用Tomcat服务器时。这种问题的出现可能是由于多方面的原因,包括系统配置、环境变量、文件权限、命令语法等...

    The.Startup.Equation.A.Visual.Guidebook.to.Building.Your.Startup

    Filled with insightful case studies, The Startup Equation is a vibrant, practical guide to creating a winning business model for any startup. By following the accessible visual roadmap within, you'll ...

    难得C++全栈!侯捷老师C++天龙八部合集+专业辅导 C++技能超级实战+算法实践+系统设计

    06.侯捷 C++ Startup 揭密:C++ 程序的生前和死后 07.算法原理与实践(选修) 08.系统设计与实践(选修) 09.辅导课 “天龙八部”C++全栈详细目录 (1)\01.侯捷 - C++面向对象高级开发(上下两部曲);目录中文...

    STM32F103X的C++空项目模版

    C++是一种强大的面向对象编程语言,它允许开发者利用类、对象、继承、多态等特性进行更高效、结构化的编程。将C++应用于STM32F103X可以提高代码的可读性和可维护性,同时降低开发难度。 在使用Keil uVision 4.53这...

    startup.sh linux 启动jar包命令

    startup.sh linux 启动jar包命令startup.sh linux 启动jar包命令startup.sh linux 启动jar包命令startup.sh linux 启动jar包命令startup.sh linux 启动jar包命令

    arm的startup.s解析

    arm的startup.s解析,有详细的注释,适用用于lpc类的 arm

    startup_n.rar_S3C4510 STARTUP_startup

    描述中提到"经过检验的4510B的BOOT启动代码,是烧到FLASH里面的呦",这意味着这段代码经过了验证,能够正确引导S3C4510B芯片的启动过程,并且需要被编程到处理器内部的闪存(FLASH)中。Bootloader的主要任务是在...

    IBM XL C/C++ for AIX, V11.1 Standard C++ Library Reference

    #### C++ Program Startup and Termination C++程序的启动与终止过程也由标准库处理。程序启动时,系统会执行一系列初始化操作,包括设置全局对象。当程序正常结束或异常终止时,也会执行清理操作,如关闭打开的...

    Oracle数据库startup和shutdown方式

    默认情况下,如果不指定任何选项,`STARTUP`命令将执行`STARTUP MOUNT`之后再自动执行`ALTER DATABASE OPEN`,即打开所有数据文件和日志文件,使数据库进入正常工作状态。 命令示例:`SQL&gt; startup` **4. 特殊启动...

    STM32f10x_startup

    `STM32F10x_startup`指的是针对该系列芯片的启动文件,通常以`.s`格式存在,它是微控制器在上电或复位后执行的第一段代码,对整个系统的初始化起着关键作用。 1. **启动文件的作用**: - 初始化堆栈:设置初始堆栈...

    the-Windows-startup-time.rar_startup

    标题中的"the-Windows-startup-time.rar_startup"表明这是一个关于计算Windows启动时间的项目,可能包含源代码和相关文档。这个项目使用了VC++作为开发工具,VC++是Microsoft Visual C++的简称,是一个功能强大的C++...

    nacos启动文件startup.cmd

    startup.cmd

    各种C++预编译命令

    C++预编译命令详解 预编译命令是C语言和C++语言中非常重要的一部分,它们可以在编译前对代码进行处理和修改,从而影响编译器的行为。本文将详细介绍各种C++预编译命令,包括#pragma指令的多种用法。 #pragma指令 ...

    Robotics, Vision and Control.pdf Peter Corke PART 1

    Robotics, Vision and Control Fundamental Algorithms in MATLAB.pdf 是由Matlab的机器人工具箱rvctools的设计者Peter.Corke 编写的机器人学入门手册,其中详细的介绍了工具箱的编成仿真,高清晰度,有目录书签,是...

    C++开机启动程序

    本文将详细介绍如何使用C++编程语言来创建一个开机启动程序,并探讨操作注册表的相关知识。 一、C++与注册表操作 C++本身并不直接支持注册表操作,但我们可以借助Windows API函数来实现。Windows API提供了丰富的...

    startup_stm32f103xb.s

    startup_stm32f103xb.s

Global site tag (gtag.js) - Google Analytics