跳转到内容

Trainz/AM&C/containers

来自维基教科书,开放世界中的开放书籍
logo
Trainz 培训学员基础知识

Trainz 资产维护与创建
目录 | 开始趣味 | AM&C | 创建 | 书内参考文献 ORP 参考文献:  • 索引 • 容器 • 类型 • 标签 | 附录  • 版本
 词汇表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 鼠标使用
 符号


[e]
KIND(资产组类型)
以及 容器


计算机科学中的容器

[编辑 | 编辑源代码]

计算机科学 (CS) 领域中,'容器' 是一种类型化的 变量,它可以保存其他值。原始类型是语言的数据元素(与二进制机器存储类型相对应),它用于在容器(如数组,一个索引列表容器,其中所有封闭的数据元素类型相同)中组合时定义更复杂的类型。'变量' 是一个关键字(符号引用),用作对内部类型的数据元素(无论它们是什么类型)进行引用的'人为方便的句柄'。在一般计算机科学中,变量值可以更改和重新定义,而在 Trainz 中,某些关键字名称是可变的,而数据由内容创建者 (CC) 在配置文件中固定。

也就是说,在 Trainz 中,容器是枚举数据类型,它们充当关键字,后面跟着一对花括号 ({}) 将包含的数据封闭在内部,但某些 Trainz 枚举容器类型可能存在多个实例[1],因此在需要多个实例时,会在后面追加数字索引进行区分,例如(常见的特效容器)smoke0、smoke1...、smokeii

在最底层——机器依赖的地方:字节由字节组成,字节由短字组成,短字由长字组成,(有时是短字和)长字可以加倍、四倍(x4)、五倍(x5)或捆绑成更大的字节块,由程序在机器代码级别对它们进行解释,以便分配和定义类型。
上面的列表都是硬件可以管理的原始类型,将它们解释和程序处理为语言的原始类型是编译器编写者的工作。当高阶语言适应计算机体系结构时,它使用这些机器原始类型来定义它的语言特定数据元素或原始类型。其他更复杂的类型都是根据这些类型定义的。
应用程序依赖于这些类型定义,例如字符(此文本)、整数(没有小数部分,请!)、浮点数 (小数十进制 中用 二进制 表示——二进制机器形式)。这些计算机语言必然也必须具有匹配的原始类型,称为 指针,用于描述所有这些原始类型的所有数据元素的 内存地址(或物理地址)。如果无法在 随机访问 操作中直接访问该元素,则它不是一个离散元素,这使得它成为一个更大元素的一部分——一个包含其物理状态的容器。
按位 算术中,整数通常与特定位相关联,这些位具有相应的含义。这些被称为标志,并且与位掩码一起经常用作分类(是此集合的一部分、满足此条件、符合或不符合此测试),用于确定进一步的处理。这些是 YES-NO 或 TRUE-FALSE 评估,是 布尔逻辑 的操作。

当数据原始类型需要成批处理时,使用容器类型。

  • 字符串是一个容器,包含的字符不应被视为数值数据,或者简称为文本;尽管文本的合法表示取决于文本的编码方式(Unicode、ASCII、BOM 等)。
  • 数组是一个索引化的随机访问值组,是另一种类型的容器。类型数组(整数、字符串等)可以保存每个匹配的原始类型的元素。在机器级别,数组的开头是一个地址('A'),该地址的值是第一个元素,它可以保存该类型的值。下一个元素偏移了数据的长度(L)字节 - 可以单独寻址(索引以进行随机访问)的最低数据形式 - 因此 第一个元素的地址 + L)(A + L) 给出了下一个元素的地址。这可以用索引或游标变量 'I' 来写,这样第 N 个元素,当 I= (N-1) 时,可以通过 Ai = (A + L * I) 来寻址,通常用 V[i] 表示,其中 V 是一个变量名。因此,数组中的最大元素数为 N,因为 V[0] 必须是地址算术中的零偏移量,而 V[N] 是一个非法索引,因为它计算了内存中另一个未分配给数组的位置的地址。因此,V[N-1] 是 N 个声明的内存地址的最后一个元素,长度为 L 字节。
  • 矩阵


Trainz 容器

[编辑 | 编辑源代码]
  1. 一个 资源内容操作系统 文件系统上的一个文件文件夹,包含其自身的自定义文件,这些文件随后被整合到 Trainz 数据库中,由 TrainzUtil内容管理器 管理。大多数资源都需要组件部件或其他资源才能完全渲染数字模型,或运行时资源,如 Trainz 会话和 路线
    1. 勘察员 模块用于在 地图“布局”或“路线”资源)上构建游戏世界,方法是将这些内容/资源放置在地图的数据库中 - 这些数据库都包含在地图的 KUID 文件夹 中,并保持所有内容井然有序。
    2. 勘察员模块的 会话编辑器 也用于编写 会话,这些会话将表示脚本的小程序的 规则 编译成运行时代码,以创建一个存储在会话 KUID 文件夹中的游戏场景,作为一个 配置文件。这些在组成和功能上与历史上的“场景”类型有很大不同,后者是在 TrainzScript 应用程序中预先编写并保存为 活动。KIND 活动在 TS2012 之后停止使用,除非您在数据库中,否则启动它们的菜单按钮不会显示。
  2. 所有资源都包含一个标题或自定义文件,Trainz 称之为 config.txt,这是一个资源组织和参数声明文本文件,没有它,资源的自定义将失败,或者根据 spin N3V 对这个词的扭曲,会产生 故障
  3. 一个 .cdp 文件或 .cdp2、.cdpa 变体)是另一个火车容器,是一个便携式压缩数据集合,我们可以从其他 Trainzer、跨 Trainz 版本通过导出和导入获得,以及从 DLS 上传和下载的数据形式。
  4. Trainz 容器 是一种 枚举(定义和约束)复杂类型的数据结构,它可能包含标签(通常是虚拟标签)以及值或引用 (KUIDS) 以及 子容器容器
    1. 它们通常包含可变长度(对 CC)的数组声明(乘客附件点 乘客参数),这些声明用于分配实际内存和初始化值,这些值由同一结构中附带的定义标签或从父容器继承的标签进行修改。
    2. 在配置中哪些容器是合法的,取决于资源 KIND 标签定义。
    3. 包含文件 是计算机科学课程中的一种实现方式,在 Trainz 中通过 texture.txt 文件引用来实现,这意味着列出组件 依赖项 的 KUID。Trainz 中的 texture.txt 文件在 config.txt 声明中令人困惑,它不能具有 .txt 扩展名,但必须以 .texture 扩展名结尾。
    4. 在 Trainz 层次结构中,KIND 是一个上层复杂类型,它隐式嵌入了必要的标签。
      1. 也就是说,几乎所有 KIND 定义都添加了一些标签,这些标签不在配置中嵌套在成对花括号内,这些花括号是通用 KIND 的特征,再加上一个看起来像容器的元素。
      2. 这些是实际上的子容器,仅特定于该 KIND,而 Trainz 容器类型更通用,因此可以在一个 KIND 要求中声明和使用。实际上,容器实际上是 KIND 的子容器,它们满足多个资源自定义的更广泛需求。
      3. 隐式嵌套由 KIND 标签的声明控制,因此不在其特殊子容器中的 KIND 标签可以被正确处理。

注释和脚注

[编辑 | 编辑源代码]

参考资料

[编辑 | 编辑源代码]
  1. 定义:实例
华夏公益教科书