云文档网 - 专业文章范例文档资料分享平台

UDK教学第二章 - 图文

来源:网络收集 时间:2024-05-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

?

第二章: UNREALSCRIPT的初级学习

o

2.1基本语法

? 标识符和关键字

? ?

表达式和操作符

注释

o 2.2再生MUTATOR(设置方法)

?

o

设计类的计划

2.1 –研究再生Mutaor(设置方法) o 2.2 –初始化PAWN类设置

o o

2.3 –设置再生计时器

2.4 –mutator(设置方法)的脚本 o 2.5 -编译脚本

2.6 –发布及测试mutator(设置方法) o 附加文件

o

第二章: UNREALSCRIPT的初级学习

无论您是第一次开始学习编程或者只是简单地学习一种新的语言,开始一个新的学习旅程的想法都可能有点令人畏惧。使用UnrealScript进行编程需要您具有很多方面的知识,其中有几个是非常复杂的。在我们深入了解UnrealScript之前,我们将通过创建非常简单的脚本来对它提有一个初步的认识。这里我们将不会深入地介绍在创建脚本过程中使用的概念。但是,本章为您提供了一个机会使您熟悉从计划到实现以及到实施的过程中创建脚本的过程,它向您展示了UnrealScript实现您的想法的强大威力。尽管这个练习中没有必要介绍UnrealScript语言的相关知识,但我们仍然需要介绍一些基本概念以便可以进一步学习。

2.1基本语法

UnrealScript开发人员想开发一种对于C++和Java程序员来说都熟悉的语言,所以当设计语言时,他们以C语言的风格来创建它。所有这些意味着它和这些语言具有类似的语法,比如使用分号终止一个语句(一行代码),并且使用花括号({ })来包含一组语句。

当我们书写代码时,我们本质上是在不断地重复几组标示符、关键字、操作符及注释来创建我们想要的功能。让我们对这些概念中的每一个都有一个简单的认识。

标识符和关键字

修饰符是程序员为他们想引用的项所取的名称,比如类、变量及函数名。在UnrealScript中,所有的修饰符都是大小写不敏感的,这意味着

RegenPerSecond、REGENperSECOND和 ReGeNpErSeCoNd都被认为是同一个标识符。

当提到标示符名称时,有几个需要知道的规则: 1. 所有的标示符必须以字母或下划线(_)开始。 2. 后面可以跟随任何字母、数字或下划线的组合物。 3. 标识符不能包含空格。 4. 标示符不能和关键字一样。 有效标识符的几个例子: ___ValidIdentifier Valid_Identifier Valid123Identifier456 无效标识符的几个例子: 3_Invalid

Inv@lid

Invalid Identifier class

关键字是编译器保留的特殊单词,它们对应着特定的功能。在我们的示例脚本中,我们看到了几个不同的关键字:class function var defaultproperties。和标识符一样,关键字也是大小写不敏感的。

表达式和操作符

表达式是一组值、操作符和分组符号构成的一个实体,当计算表达式的结果时将会产生某些可以存储的有意义的值。这里是一个示例表达式列表: 100

8 + (3 – 2) * 7 2 * PI

操作符是特殊的函数,它可以操作每项的值,称为操作数;操作数是表达式的主要部分,因为所有的重要的表达式都会使用它们。我们在上面的示例表达式中看到了一些操作符:+ () *。

操作符和表达式是任何程序的必要部分。同样,在稍后的一章将会对其进行详细的介绍。目前,这里为您提供了是您可以继续进行本章剩余部分所需要的必要的知识。

注释

注释用于为您的源代码提供文档,编译器将完全地忽略它们。通常,有时候它们用于描述函数及它们的参数的作用。当在一个项目上进行合作时,注释是非常重要的,因为通过注释其它程序员可以很容易地阅读和理解代码。如果代码没有适当的文档及解释,那么从代码创建后很长时间过去后,那写代码对于其他人甚至它的作者来说都是令人难以理解的。

注释的另一个应用是在测试和调试期间。代码的一部分可以被“注释掉”,这意味着这段代码将不会再被识别及执行。这个方法可以用于查找代码中存在问题的部分或者用于查看代码中类似的两部分之间的区别。为这个目的使用注释时可以免除删除及重新书写代码带来的麻烦,从而使得整个过程更加简单更加有效。 UnrealScript支持两种类型的注释结构: // A line comment(行注释) /* A block comment(块注释) */

行注释是指以一对正斜杠(//)开始一直到达了行的尾部为止。块注释告诉编译器忽略在开始(/*)和结束(*/)注释标记之间的任何内容。 这里是当添加脚本时,我们的示例脚本样子:

/* This class provides the ability for the player to regenerate his

health every second. (这个类提供了使玩家在每秒钟重新生成它的健康值的能力。) */

class UTMutator_SuperRegen extends UTMutator;

// The number of hit points that should be restored every second.(每秒钟要存储的碰撞点的数量) var() float RegenPerSecond;

function InitMutator(string Options, out string ErrorMessage) {

SetTimer( 1.0, true /* This timer should be called repeatedly */ );

Super.InitMutator( Options, ErrorMessage ); }

2.2再生MUTATOR(设置方法)

在接下来的几部分中,您将会创建一个新的MUTATOR(设置方法)。Unreal中的MUTATOR(设置方法)是指以某种方式改变标准的游戏函数的脚本。这可以是像把地图中的所有武器替换为火箭发射器那样简单或者它也可以涉及到更多的内容,比如该把玩家的视图从第一人称改为第三人称。在我们的示例中,我们将使用设置方法来是玩家的生命值在打游戏过程中每秒重新生成指定量的生命值。

正如前一章所说的,ConTEXT是这本书中所有实例和指南使用的文本编辑器。如果您打算使用ConTEXT,请确保您已经根据附录B设置了它:为虚幻引擎3设置ConTEXT。如果您打算使用WOTGreal,请参照附录C:为虚幻引擎3设置WOTGreal。

设计类的计划

在书写任何代码之前,我们为脚本真正应该做的事情创建一个详细的计划是很重要的。我们已经说过mutator(设置方法)应该在每秒中重新生成玩家的生命值。这是一个好的开始,但是我们要问一些更多的可以帮助我们实现这个功能的问题。

? ?

我们怎样重新生成生命值?

要重新声称所有玩家的生命值吗?包括机器人? ? 每秒钟应该重新生成多少生命值?

? ?

这个值是可以配置的吗?

直到生命值到达哪个点时才停止重新生成生命值? ? 有没有不应该重新生成生命值的情况?

在这个实例中,我们将会让mutator(设置方法)重新生成玩家控制的所有角色的生命值,但是机器人除外。最简答的实现这个功能的方法是使用具有重新生成功能的Pawn类替换调游戏中的Pawn。当玩家处于一个用于引发痛苦的体积中时,则不能重新生成生命值,所以在设计mutator(设置方法)时应该考虑到这个状况。

2.1 –研究再生Mutaor(设置方法)

这时,我们需要进行一些研究。在进行实际的编码之前我们需要解决几个问题。第一,我们需要某种方法来使用我们的处理再生的类替换游戏中所有玩家。第二,我们需要找到任何条件下允许玩家可以拥有的最大生命值或者代表这个值变量。最后,需要某种用于判定玩家是否在引起痛苦的体积中的方法。

当尝试查找特定的信息片段时知道从哪里找到通常是很难的。您会发现随着您对Unreal类的熟悉,您便可以更加容易地查找到您想找到的东西。

1. GameInfo处理关于游戏类型方面的功能。这里是开始寻找使用我们自己的类来代替游戏中使用的默认pawn类的方法的最好的地方。找到位于../Engine/Classes目录中的GameInfo.uc脚本并打开它。

2. 大多数情况下,使用文本编辑器中内置的搜索功能来定位特定关键字是一种查找您想要的东西的最好方法。因为我们正在想设计游戏中的所有Pawns使用那个类,所以PawnClass将是用于搜索的较好的关键字。确保您是从文档的顶部开始搜索是很重要的,这样您便不会忽略任何东西。

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典综合文库UDK教学第二章 - 图文在线全文阅读。

UDK教学第二章 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/wenku/475472.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219