• 沒有找到結果。

Drawing Customization

在文檔中 通用棋譜編製系統之研究 (頁 49-53)

第四章 系統實作

4.2 使用者介面

4.2.1 Board Panel

4.2.1.2 Drawing Customization

棋盤上除了需要繪製棋盤和棋子之外,為了使用者操作和瀏覽的 方便,也會在棋盤上繪製一些提示符號或是圖案來輔助說明。由於各 遊戲對這部分的需求不一,在這裡我們同樣是使用 Property 檔來處 理。我們將這類的繪圖功能,分成標記、下子順序及提示圖案等三個 部分來討論。

4.2.1.2.1 標記

有時為了註解說明方便起見,我們會需要在棋盤格或棋子上用一 個符號表示目前所說明的位置,一般我們將這類符號稱做「標記」。

例如圖 4-3 中的 a b c 三個字母即為標記的一種。

註解:

吳清源[17]:

黑 19 是搶先手的下法。

此棋如要忍耐,則在 a 長,白 b,黑 c,

白拿到先手。

圖 4-3、標記使用範例

由於不同的遊戲所需要的標記種類可能會不一樣,因此現在就讓 我們來看看如何透過 property 的設定來解決這樣的問題:

Property 屬性說明 屬性值

(以五子棋為例)

EDITER_MARK_SYMBOL 標記符號

(以|作間隔)

○|●|△|▲|□|■

EDITER_IMG_MARK 標記圖檔 marks.gif

EDITER_CUT_MARK 標記圖檔的標記個數 6

EDITER_MARK_MENU_TOTAL 功能表選單個數 3

EDITER_MARK_MENU_0 選單名稱 添加圓形標記

EDITER_MARK_MENU_1 選單名稱 添加三角形標記

EDITER_MARK_MENU_2 選單名稱 添加正方形標記

EDITER_MARK_BUTTON_0 工具列按鈕文字

EDITER_MARK_BUTTON_1 工具列按鈕文字

EDITER_MARK_BUTTON_2 工具列按鈕文字

表 4-3 、標記相關 Property 設定項目

對應於標記圖檔中的順序,在 EDITER_MARK_SYMBOL 中為每一 個 標 記 設 定 一 個 代 表 符 號 , 用 來 在 棋 譜 列 表 中 表 示 標 記 。

EDITER_IMG_MARK 設定標記圖檔的路徑,同時,與棋子圖檔的設計

相同,需要透過 EDITER_CUT_MARK設定內含的標記個數。另外,由 於標記功能需要由功能表或工具列提供功能選單或按鈕方能使用,而 各 個 遊 戲 的 標 記 項 目 又 不 相 同 , 因 此 在 這 裡 使 用

EDITER_MARK_MENU_TOTAL 指 定 標 記 項 目 個 數 , 以 及 以

EDITER_MARK_MENU_x EDITER_MARK_BUTTON_x(x 為從 0 開始的 數字)依序指定在功能選單中的文字與工具列按鈕上的文字。以上 例而言,呈現的結果如圖4-4:

圖 4-4、標記 Property 設定結果範例

當使用者按下其中一個功能表選單時,其相對應的工具列按鈕也 會呈現選取狀態,反之亦然,此時使用者在棋盤上可以點選欲新增標 記的位置,當使用者點選時,平台會告知遊戲目前是第幾個功能表選 單被點選,遊戲可以透過這個值來決定目前是添加哪一個標記。

4.2.1.2.2 下子順序

某些棋類遊戲如五子棋、圍棋等,需要在棋子上標明下子的順序

(又稱手順),如圖 4-5 中黑白兩子上的數字:

圖 4-5、手順使用範例

平台內部提供函式讓遊戲可以取得手順數字,但是手順數字的顯 示顏色往往隨著棋子的顏色不同而跟著改變,同時顯示的位置和大小 也會需要做調整,因此我們設計相關的 Property 如下:

Property 屬性說明 屬性值

(以五子棋為例)

EDITER_PIECE_PLY_COLOR 數字顏色 FFFFFF|000000

EDITER_PIECE_PLY_FONT_SIZE 數字大小 14

EDITER_PIECE_PLY_OFFSETX_0 10

EDITER_PIECE_PLY_OFFSETY_0

數 字 為 0~9 時的

顯示位置調整 17

EDITER_PIECE_PLY_OFFSETX_1 7

EDITER_PIECE_PLY_OFFSETY_1

數 字 為 10~99 時

的顯示位置調整 17

EDITER_PIECE_PLY_OFFSETX_2 4

EDITER_PIECE_PLY_OFFSETY_2

數 字 為 100~999 時的顯示位置調整 17 表 4-4 、手順相關 Property 設定項目

我們透過 EDITER_PIECE_PLY_COLOR 屬性來設定手順的數字顏

色,使用十六進位數字依序指定 00~FF 的紅、綠、藍色彩值。顏色的 順 序 對 應 於 棋 子 的 順 序 , 同 代 碼 的 棋 子 會 使 用 同 樣 的 顏 色 。

EDITER_PIECE_PLY_FONT_SIZE設定顯示的數字大小,單位為 pt,其他

屬性則用來調整數字顯示顯示的位置。

對於這類的繪圖,我們使用下列 Property 設定:

Property 屬性說明 屬性值

(以象棋為例)

EDITER_IMG_HIGH_LIGHT 提示圖案圖檔 highLight.gif

EDITER_CUT_HIGH_LIGHT 圖檔中的圖案個數 3

EDITER_IMG_INDEX_CURSOR 游標移動圖案索引值 0

EDITER_IMG_INDEX_CLICK 點選棋子圖案索引值 1

EDITER_IMG_INDEX_SRC 標示棋子來源位置

索引值

2

EDITER_IMG_INDEX_DES 標示棋子目的地位置

索引值 的圖檔都放置在 EDITER_IMG_HIGH_LIGHT 中,平台中亦提供函式 setHighLight(int x,int y,int index)來讓遊戲繪製指定的提示圖案。

在文檔中 通用棋譜編製系統之研究 (頁 49-53)

相關文件