跳轉到內容

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. 定義:例項
華夏公益教科書