X Window 系統(tǒng)使用指南--示□與游戲程式
第11章 示□與游戲程式 MIT 發(fā)行的 core 版本提供了少數(shù)的示□程式以及僅有的一個(gè)游戲程式. 它們展現(xiàn)出某些視窗系統(tǒng)的威力, 且能給人一種強(qiáng)烈的美好印象 -- 特別是在 彩色螢?zāi)簧?
11.1 找出通過隨機(jī)迷宮的路徑 - maze
maze 在視窗中產(chǎn)生一個(gè)隨機(jī)的迷宮 (圖 11 - 1), 它會(huì)自動(dòng)找出從入口 通過迷宮到達(dá)出口的路徑. 它會(huì)追蹤它走過的軌跡, 當(dāng)它從一個(gè)死巷中退出時(shí) 則將軌跡消除. 你可以用滑鼠按鈕啟動(dòng), 暫停, 繼續(xù)或停止程式, 就如同在手 冊頁中所描述的. maze不提供顏色.
注意 : 中間按鈕對暫停與重新啟動(dòng)的作用并不可靠.
┌————————————————┐ │ p125. fig 11 - 1 │ │ │ │ │ │ │ │ │ │ 圖 11 - 1 迷宮程式 │ └————————————————┘
11.2 擔(dān)任指標(biāo)的大眼睛 - xeyes
xeyes 在視窗中繪出兩個(gè)大眼睛, 且它們永遠(yuǎn)保持看著指標(biāo) (圖 11 - 2). 當(dāng)指標(biāo)移動(dòng)時(shí)眼睛也隨著調(diào)整 (且若你移動(dòng)指標(biāo)到它自己的眼睛之間, 它們會(huì) 變成斗雞眼! (cross eyed!)
你可以明確地給視窗的每個(gè)元素設(shè)定顏色 - 瞳孔, 背景, 外框等.
注意 : xeyes 會(huì)使你的系統(tǒng)執(zhí)行速度變慢.
┌————————————————┐ │ p126. fig 11 - 2 │ │ │ │ │ │ │ │ │ │ 圖 11 - 2 xeyes 程式 │ └————————————————┘
11.3 智慧盤游戲 - puzzle
puzzle 是一種古老的游戲, 有 15 個(gè)編號(hào)的小方塊被一個(gè) 4x4 框架圍住. 你必須移動(dòng)小方塊使它們按照數(shù)字順序排列. (圖 11 - 3)
┌————————————————┐ │ p127. fig 11 - 3 │ │ │ │ │ │ │ │ │ │ 圖 11 - 3 智慧盤游戲 │ └————————————————┘
你可以使用滑鼠控制游戲 :
啟動(dòng)游戲 : 藉著在控制棒的左上邊盒子內(nèi)碰觸按鈕可以重新攪和小方塊.
移動(dòng)小方塊 : 將指標(biāo)移到與空白位置相同的行或列的小方塊上,碰觸按 鈕以移動(dòng)該小方塊與所有它之前的所有小方塊進(jìn)入空的位置. (所以 移動(dòng)後, 空位置在你碰觸按鈕的地方)
由 puzzle 自己去解 : 在控制棒的右手邊盒子上碰觸按鈕.
離開 (跳出) : 在控制棒的中間碰觸中間按鈕.
11.3.1 puzzle 的命令列選項(xiàng)
使用一個(gè)大小不是 4x4 的框架 : 使用選項(xiàng) - size width x height, 其中尺寸是以小方塊為單位.
改變小方塊被移動(dòng)的速率 : 使用選項(xiàng) -speed num. 此處 num 是每秒移動(dòng) 的數(shù)目 (預(yù)設(shè)值為 5).
11.4 列印一個(gè)大X語標(biāo) - xlogo
xlogo 建立一個(gè)視窗并在它里面顯示一個(gè)X語標(biāo)(logo),如圖 11 - 4. 假 如你重定視窗大小,語標(biāo)再次被繪出, 且盡可能地將視窗填滿.
┌————————————————┐ │ p127. fig 11 - 4 │ │ │ │ │ │ │ │ │ │ 圖 11 - 4 xlogo 程式 │ └————————————————┘
11.5 跳動(dòng)的多面體 - ico
ico 產(chǎn)生一個(gè)視窗且在它里面有一個(gè) 12 面體 - 一個(gè)具有 12 面的實(shí)心 體 - 如圖11 - 5 所示. 這個(gè)多面體是會(huì)動(dòng)的, 它在視窗內(nèi)不斷地碰撞跳躍. 在單色顯示器上你可能只有一個(gè)直線構(gòu)成的圖 (使用選項(xiàng) -i 可以反白顯示), 但是在彩色顯示螢?zāi)簧? 你可以看到實(shí)心的彩色面.
試下面的例子 :
ico -nodeges -faces -colors red blue yellow green
你可以設(shè)定一個(gè)跳躍的12面體在一個(gè)根視窗內(nèi) (背景視窗),而不必靠它自 己使用 -r 選項(xiàng)指定特定視窗. 另外, ico 可指定多面體的面數(shù), 不是只有12 面體 : 如果你想得到一個(gè)完整的列表可以鍵入下列命令 :
ico -objhelp
┌————————————————┐ │ p128. fig 11 - 5 │ │ │ │ │ │ │ │ │ │ 圖 11 - 5 ico 程式 │ └————————————————┘
11.6 動(dòng)態(tài)幾何圖樣 - muncher 與 plaid
muncher 與 plaid 重覆地繪出變化多端而有趣的幾何圖樣 (圖 11 - 6a 與 b).
┌————————————————┐ │ p129. fig 11 - 6 │ │ │ │ │ │ │ │ │ │ 圖 11 - 6 muncher 與 plaid 程式│ └————————————————┘
11.7 結(jié)論
core版本中沒有非常廣泛的示□程式. 假如你曾讀取 contrib 的磁帶, 你 可能會(huì)發(fā)現(xiàn)下列有趣的程式 :
paint : 簡單的繪圖程式. (像一個(gè)畫圖程式, 但你可以對區(qū)域涂上紋理 或顏色, 不只是線.)
xcolors : 一個(gè)可展示你的系統(tǒng)上所有顏色名稱的好程式.
xfish : 設(shè)定魚在你的整個(gè)背景視窗內(nèi)游動(dòng). 有趣的部分是你可以用滑鼠 射擊它們.
qix : 一個(gè) qix 射擊游戲的程式.
xmille : 和你玩一個(gè) Mille Bournes 的牌戲.
xsol : 和你玩一個(gè)單人玩的牌戲.
xtrek : 一個(gè)令人著迷的太空游戲.
