跳轉到內容

Trainz/AM&C/containers

來自華夏公益教科書
(重定向自 Trainz/container)
logo
Trainz新手入門

Trainz資源維護與創作
TOC | 開始樂趣 | AM&C | 創作 | 書內參考文獻 ORP 參考資料:  • 索引 • 容器 • 種類 • 標籤 | 附錄  • 版本
 詞彙表
 HKeys-CM
 HKeys-DVR
 HKeys-SUR
 HKeys-WIN
 滑鼠使用
 符號


[e]
KINDs(資產組型別)
容器


CS中的容器

[編輯 | 編輯原始碼]

計算機科學(CS)領域,'容器' 是一個型別化的 變數,它包含其他值。一個原始型別是語言中的一個數據元素(與二進位制機器儲存型別相對應),它用於在容器(如陣列)中組合時定義更復雜的型別(一個索引列表容器,其中所有包含的資料元素型別相同)。'變數' 是一個關鍵字(一個符號引用),用作'方便人類使用的控制代碼',用於引用其中型別的元素,無論它們是什麼型別。在一般計算機科學中,變數的值可以被更改和重新定義,而在 Trainz 中,某些關鍵字名稱是可變的,而資料則由內容建立者 (CC) 在配置檔案中固定。

也就是說,在 Trainz 中,容器是列舉資料型別,它們充當關鍵字,後跟一對大括號 ({}),在其中包含資料,但某些 Trainz 列舉容器型別可能會出現多次[1],因此當需要多個例項時,會在末尾新增一個數字索引,例如(常見的特效容器)smoke0、smoke1...、smokeii

在基礎級別--機器相關的級別:nibbles 構成 bytes,bytes 構成 short words,short words 構成 long words,並且(有時是 short words 和)long words 可以加倍、四倍 (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. 一個 資產內容OS 檔案系統上的一個檔案資料夾,其中包含其自身的自定義檔案,這些檔案隨後被合併到 Trainz 資料庫中,該資料庫由 TrainzUtil內容管理器 管理。大多數資產需要元件部分或其他資產才能完全呈現數字模型,或執行時資產,例如 Trainz 會話和 路線
    1. 勘測員 模組用於在 Kind 地圖'佈局' 或 '路線' 資產)上構建遊戲世界,方法是在地圖的資料庫上放置此類內容/資產——這些內容都包含在地圖的 KUID 資料夾 中,它保持所有內容井井有條。
    2. 勘測員模組的 會話編輯器 也用於編寫 會話,這些會話結合了代表指令碼的 規則,這些指令碼被編譯成執行時程式碼以建立一個用於遊戲的“場景”,儲存在會話的 KUID 資料夾中,作為一個 Kind 配置檔案。這些在組成和功能上與歷史上的“場景”型別有很大不同,後者是在 TrainzScript 應用程式中預先編寫並儲存為 活動。在 TS2012 之後,KIND 活動被停用,除非使用者在資料庫中,否則啟動它們的選單按鈕不會顯示。
  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 層次結構中,KINDs 是一個上層複雜型別,其中隱式嵌套了必要的標籤。
      1. 也就是說,幾乎所有 Kind 定義都會在 config 中新增一些標籤,這些標籤不會巢狀在成對的捲曲括號中,這些括號是通用 Kind 的特徵,以及一個在外觀上是容器的元素。
      2. 這些是事實上的子容器,僅適用於該 KIND,而 Trainz 容器型別更通用,因此可以在多個 KIND 需求中宣告和使用。實際上,容器實際上是 KIND 的子容器,它們滿足幾個到多個資產自定義的更廣泛需求。
      3. 隱式巢狀由 Kind 標籤的宣告控制,因此不在其特殊子容器內的 Kind 標籤可以被正確處理。

註釋和腳註

[編輯 | 編輯原始碼]

參考資料

[編輯 | 編輯原始碼]
  1. 定義:例項
華夏公益教科書