跳轉到內容

Trainz/AM&C/containers

來自華夏公益教科書
(從 Trainz/AM&C/container 重定向)
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

在基礎級別——機器依賴的地方:nibbles 組成位元組,位元組組成短字,短字組成長字,並且(有時包括短字和)長字可以加倍、四倍 (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. 勘測員 模組用於在 地圖一個 '佈局' 或 '路線' 資產)上構建遊戲世界,方法是在地圖的資料庫上放置這些內容/資產 - 這些內容/資產全部包含在地圖的 KUID 資料夾 中,這樣可以保持所有內容井然有序。
    2. 勘測員模組的 會話編輯器 也用於編寫 會話,這些會話將 規則 組合在一起,這些規則代表編譯成執行時程式碼的指令碼程式,以建立一個儲存在會話的 KUID 資料夾中作為 配置檔案 的 '場景' 以供遊戲玩耍。這些在組成和功能上與歷史上的 '場景' 型別有很大不同,後者在 TrainzScript 應用程式中預先編寫並儲存為 活動。KIND 活動在 TS2012 之後被棄用,啟動它們的選單按鈕除非在資料庫中,否則不會顯示。
  2. 所有資產都包含一個標題或自定義檔案,Trainz 稱之為 config.txt,這是一個資源組織和引數宣告文字檔案,沒有它,資產自定義就會失敗,或者根據 N3V 扭曲的術語,會產生 錯誤
  3. 一個 .cdp 檔案或 .cdp2、.cdpa 變體)是另一個火車容器,一個可移植的壓縮資料集合,我們從其他 Trainzer 那裡獲得,透過匯出和匯入跨 Trainz 版本,以及從 DLS 上傳和下載的資料形式。
  4. 一個 Trainz 容器是一個 列舉(定義和約束)的複雜型別資料結構,它可能包含標籤(通常是虛擬標籤)、值或引用(KUID)以及 子容器容器
    1. 它們通常包含可變長度(到 CC)的陣列宣告(乘客連線點 乘客引數),這些宣告用於分配實際的記憶體和初始化值,這些值透過同一結構中的伴隨定義標籤或透過從父容器繼承來修改。
    2. config 中哪些容器是合法的,取決於資產 KIND 標籤定義。
    3. 包含檔案是計算機科學類,在 Trainz 中透過 texture.txt 檔案引用實現,這意味著列出元件 依賴項 的 KUID。Trainz 中的 texture.txt 檔案在 config.txt 宣告中令人困惑地應具有副檔名 .txt,而應以 .texture 副檔名結尾。
    4. 在 Trainz 層次結構中,KIND 是一個上層複雜型別,其中隱式嵌套了必要的標籤。
      1. 也就是說,幾乎所有種類的定義都在 config 中添加了一些標籤,這些標籤沒有巢狀在通常種類的成對花括號中,再加上一個看起來像容器的元素。
      2. 這些是實際上僅適用於該 KIND 的子容器,而 Trainz 容器型別則更通用,因此可以在多個 KIND 需求中宣告和使用。實際上,容器實際上是 KIND 的子容器,它們滿足了多個到許多資產自定義的更廣泛需求。
      3. 隱式巢狀由 KIND 標籤的宣告控制,因此不在其特殊子容器內的 KIND 標籤可以被正確處理。

註釋和腳註

[編輯 | 編輯原始碼]

參考文獻

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