顏色

請注意,檔案不會按照螢幕上顯示的方式顯示顏色。

顏色對於您的遊戲來說是一個非常有用的工具。它可用於增加可讀性並使您的 遊戲在視覺上更具吸引力。

但請記住,除了 webclient 之外,您通常無法控制用於連線到遊戲的使用者端。 例如,有一個特殊的 tag 意思是「黃色」。但使用者螢幕上實際顯示的「哪種」黃色色調取決於其特定的 mud 使用者端的設定。如果需要的話,他們甚至可以交換顏色或完全關閉它們。有些客戶甚至不支援彩色文字遊戲,盲人或視力下降的人也可以使用特殊的閱讀裝置來玩文字遊戲。

因此,一個好的經驗法則是使用顏色來增強遊戲,但不要「依賴」它來顯示 關鍵訊息。預設的 screenreader 指令將自動關閉使用者的所有顏色(以及清理許多線條裝飾等)。確保您的遊戲透過此活動仍然可以玩並且可以理解。

Evennia 支援兩種顏色標準:

  • ANSI - 16 種前景色 + 8 種背景色。得到廣泛支援。

  • Xterm256 - 128 RGB 顏色,32 灰階。舊用戶端並不總是支援。回落到ANSI。

  • Truecolor - 24B RGB 顏色使用十六進位表示法。沒有得到很多客戶的支援。回落到XTerm256

若要檢視您的使用者端支援哪些顏色,請使用預設的 color 指令。這將列出所有 ANSI 和 Xterm256 的可用顏色,以及一系列真彩色程式碼以及您使用的程式碼。中央 ansi/xterm256 解析器位於 evennia/utils/ansi.py,真彩色解析器位於 evennia/utils/true/hex_colors.py

ANSI顏色和符號

Evennia 支援文字的 ANSI 標準。這是迄今為止最受支援的 MUD- 顏色標準,除了最古老的泥漿用戶端之外的所有用戶端都可用。

若要為文字著色,請在其中加入特殊的tags。 Evennia 將解析這些並將它們轉換為 所使用的用戶端的正確標記。如果使用者的用戶端/控制檯/顯示器支援 ANSI 顏色,則他們 將看到指定顏色的文字,否則 tags 將被刪除(無色文字)。

對於webclient,Evennia 會將程式碼轉換為CSS tags。

Tag

影響

|n

結束所有顏色格式,包括背景顏色。

|r

亮紅色前景色

|克

亮綠色前景色

|y

亮黃色前景色

|乙

明亮的藍色前景色

|米

明亮的洋紅色前景色

|c

亮青色前景色

|w

明亮的白色前景色

|x

亮黑色(深灰色)前景色

|右

正常的紅色前景色

|G

正常的綠色前景色

|是

正常的黃色前景色

|乙

正常的藍色前景色

|中號

正常洋紅色前景色

|C

正常青色前景色

|瓦

正常白色(淺灰色)前景色

|X

正常的黑色前景色

|[#

背景顏色,e.g。 |[c 表示亮青色背景,|[C 正常的青色背景。

|!#

繼承先前 tags 亮度的前景色。總是大寫,例如 |!R

|小時

使任何以下前景 ANSI 顏色變亮(對於 Xterm256/真彩色,如果用戶端支援,則使字型加粗)。與 \ 一起使用

!#.從技術上來說,|小時|G==|g。

|H

否定 \ 的影響

小時

|你

底線字型(Evennia webclient 不支援)

|U

否定 \ 的影響

|我

斜體字型(Evennia webclient 不支援)

|我

否定 \ 的影響

|s

刪除線字型(Evennia webclient 不支援)

|S

否定 \ 的影響

s

|/

換行。從遊戲中新增字串時,請使用而不是 Python \n。

|-

在遊戲中新增字串時製表符。可能因客戶而異,所以通常最好有空間。

|_

一個空間。只需要避免在遊戲輸入結束時自動裁剪

|*

反轉目前文字/背景顏色,就像標記一樣。請參閱下面的註釋。

以下是 tags 的實際操作範例:

 |rThis text is bright red.|n This is normal text.
 |RThis is a dark red text.|n This is normal text.
 |[rThis text has red background.|n This is normal text.
 |b|[yThis is bright blue text on yellow background.|n This is normal text.

注意:ANSI 標準實際上並不支援像 |[r - 標準那樣的明亮背景 僅支援“正常”強度背景。 為瞭解決這個問題,Evennia 在幕後將它們實現為 Xterm256 顏色。如果用戶端不支援 Xterm256 將使用 ANSI 顏色,並且使用大寫和小寫背景 tags 之間不會有明顯差異。

如果要將 ANSI 標記顯示為輸出文字(沒有任何效果),則需要透過在其 | 前面加上另一個 | 來轉義它:

say The ||r ANSI marker changes text color to bright red.

這將輸出原始|r,沒有任何顏色變化。如果您正在這樣做,這也可能是必要的 ansi art 使用 | 並緊跟其後的字母。

使用指令

color ansi

取得所有支援的 ANSI 顏色以及用於產生它們的 tags 的清單。

支援一些額外的 ANSI 程式碼:

|* 的注意事項

|* tag(反向影片)是舊的 ANSI 標準,通常不應用於超過 標記簡短的文字片段。如果與其他 tags 結合使用,它會帶來一系列潛在的 令人困惑的行為:

  • |* tag 只會連續使用一次:即:使用一次後就不再有效果 直到你宣告另一個tag。這是一個例子:

    Normal text, |*reversed text|*, still reversed text.
    

即第二個|*時不會反轉正常。您需要手動重置它:

```
Normal text, |*reversed text|n, normal again.
```
  • |* tag 不考慮「明亮」顏色:

    |RNormal red, |hnow brightened. |*BG is normal red.
    

因此 |* 僅考慮「真實」前景色,忽略任何突出顯示。想想光明 狀態(|h)類似於HTML中的<strong>:它修改了正常的_外觀_ 前景色與其明亮的對應顏色相匹配,而不改變其正常顏色。

  • 最後,在|*之後,如果先前的背景設定為深色(透過|[),|!#)將會 實際上改變背景顏色而不是前景:

    |*reversed text |!R now BG is red.
    

有關這些注意事項的詳細說明,請參閱瞭解顏色 Tags 教學。但大多數時候,您可能最好簡單地避免 |* 並標記您的文字 手動代替。

Xterm256 顏色

Xterm256 標準是支援 256 種顏色的文字和/或背景顏色的配色方案。它可以與ANSI顏色(上面)自由組合,但有些ANSI tags不影響Xterm256 tags。

雖然這比傳統的 ANSI 顏色提供了更多的可能性,但要注意太多的文字 顏色會讓眼睛感到困惑。此外,並非所有用戶端都支援 Xterm256 - 這些用戶端會看到 最接近的等效 ANSI 顏色。您可以根據需要將 Xterm256 tags 與 ANSI tags 混合使用。

Tag

影響

|###

前景RGB(紅/綠/藍),每個從0到5。

|[###

背景RGB

|=#

a-z 前景灰度,其中 a 為黑色,z 為白色。

|[=#

a-z 背景灰階

一些例子:

Tag

影響

|500

鮮紅色

|050

亮綠色

|005

亮藍色

|520

紅色+一點綠色=橘色

|555

純白色前景

|230

橄欖綠前景

|[300

深紅色背景的文字

|005|[054

亮青色背景上的深藍色文字

|=a

灰階前景,等於黑色

|=m

灰階前景,介於白色與黑色之間。

|=z

灰階前景,等於白色

|[=米

灰階背景

Xterm256 不像 ANSI 那樣使用明亮/正常強度;強度只是透過將所有 RGB 值增加/減少相同的量來改變。

如果你有支援Xterm256的用戶端,你可以使用

color xterm256

取得包含所有 256 種顏色以及產生這些顏色的程式碼的表格。如果桌子看起來破碎了 分成幾塊顏色,表示不支援Xterm256,使用ANSI作為替代。您可以使用 options 指令檢視 xterm256 是否對您有效。這取決於您的客戶是否告訴 Evennia 它支援什麼 - 如果沒有,並且您知道您的客戶支援什麼,您可能必須手動啟動某些功能。

24 位元顏色(真彩色)

某些用戶端支援 24 位元顏色。這也稱為真彩色。 並非所有用戶端都支援真彩色,他們會看到最接近的等效顏色。重要的是要記住,如果您在真彩色中使用微妙的漸變並且在不支援真彩色的用戶端上檢視,則事情看起來可能與您的預期完全不同。 這裡使用的十六進位顏色程式碼與網頁設計中使用的相同。

Tag

影響

|#$$$$$$

前景RGB(紅/綠/藍),6位十六進位格式,其中$ = 0-F

|[#$$$$$$

背景RGB

|#$$$

前景RGB(紅/綠/藍),3 位十六進位格式。

|[#$$$

背景RGB

一些 6 位數字的範例:

Tag

影響

|#ff0000

明亮的紅色前景

|#00ff00

明亮的綠色前景

|#0000ff

明亮的藍色前景

|#[ff0000

明亮的紅色背景

一些 3 位數範例:

Tag

影響

|#f00

明亮的紅色前景

|#0f0

明亮的綠色前景

|#00f

明亮的藍色前景

|[#f00

明亮的紅色背景