吳騰 郭松
摘要:該文設(shè)計(jì)主要是基于Linux環(huán)境下的GTK版的坦克大戰(zhàn),該文主要論述在Linux環(huán)境的下,使用GTK在游戲中實(shí)現(xiàn)坦克的移動(dòng)、敵我識(shí)別,碰撞檢測(cè)、坦克相互摧毀等功能。編輯工具為Eclipse。
關(guān)鍵詞:Linux;GTK;Eclipse
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)04-0092-02
Abstract:The design of this article is the Battle City mainly based on GTK version of the Linux environment. This article discusses that in the Linux environment, we use GTK to realize the tanks movement, IFF, collision detection, mutual destruction and other functions. we use the Eclipse edit programs.
Key words: Linux; GTK; Eclipse
1 Linux系統(tǒng)的介紹
在信息技術(shù)中,操作是一個(gè)極其重要的組成部分,而且是公眾討論的一個(gè)重點(diǎn),市面出現(xiàn)了許多的操作系統(tǒng)例如Windows,IOS, UNIX 等,毫無(wú)例外,這些操作系統(tǒng)都是收費(fèi)系統(tǒng)。相較于這些系統(tǒng)Linux操作是一個(gè)免費(fèi),開(kāi)源的操作系統(tǒng),而且Linux結(jié)構(gòu)相對(duì)簡(jiǎn)單,且任何人都可以物聯(lián)網(wǎng)下載Linux的源代碼進(jìn)行研究。
Linux現(xiàn)在被上百萬(wàn)的用戶(或者更多)下載,進(jìn)行各種科學(xué)研究或者家庭應(yīng)用。無(wú)論是相對(duì)簡(jiǎn)單的手表中的微型操作系統(tǒng),還是各種大型服務(wù)器,Linux都可以大顯身手。而且這些都使得Linux在各種應(yīng)用得到檢驗(yàn),隨著信息技術(shù)的發(fā)展,各種硬件軟件推陳出新,Linux的發(fā)展也是日新月異,Linux的源代碼的適用性也在不斷的增強(qiáng)。
本文主要是在Linux環(huán)境下,運(yùn)用GTK工具實(shí)現(xiàn)坦克的移動(dòng),相互擊毀,敵我識(shí)別等功能。
2 GTK的介紹和配置
我們要清楚兩個(gè)概念,GIMP 和GTK。GIMP(GNU Image Manipulation Program,GNU圖像處理程序)是基于Linux 平臺(tái),能與Photoshop 相媲美的圖像處理軟件;GTK(GIMP Tool Kit,GIMP 工具包)最初是GIMP 的專用開(kāi)發(fā)庫(kù),后來(lái)發(fā)展為L(zhǎng)inux 下開(kāi)發(fā)圖形界面應(yīng)用程序的主流開(kāi)發(fā)工具之一,備受開(kāi)源軟件開(kāi)發(fā)者矚目。
CTK+2.0于2002發(fā)布,它是一款在Linux環(huán)境下,采用C語(yǔ)言設(shè)計(jì)的編程工具,當(dāng)人們使用該工具的時(shí)候,需要對(duì)C語(yǔ)言十分熟悉,要熟練使用Linux 命令和GNOME、KDE等桌面環(huán)境操作,運(yùn)用LINUX 下常用的C語(yǔ)言編譯器GCC,編譯C語(yǔ)言程序等。
在發(fā)布 GTK+2.0軟件包同時(shí)還發(fā)布了GLib2.0、ATK1.0 和Pango1.0 這3個(gè)與其相關(guān)的程序庫(kù),這些構(gòu)成了GNOME2 桌面環(huán)境的基礎(chǔ)。
GLib2.0是一個(gè)以C 語(yǔ)言編寫(xiě)的底層核心庫(kù),是GTK+2.0 和GNOME 的基石。它提供數(shù)據(jù)結(jié)構(gòu)的C語(yǔ)言接口和運(yùn)行時(shí)函數(shù)的接口,如事件循環(huán)、線程、動(dòng)態(tài)調(diào)用和對(duì)象系統(tǒng)等。是一個(gè)輕量級(jí)的實(shí)用性非常強(qiáng)的程序庫(kù)軟件包。
Pango1.0 是一個(gè)重在國(guó)際化的布局和正文翻譯庫(kù),它為GTK+2.0 提供核心正文格式化、窗口和字體操作。
ATK1.0 提供友好的界面集,在ATK 界面的支持下,應(yīng)用程序或工具軟件可以使用其他輸入設(shè)備。
安裝完相關(guān)的安裝包后,我們需要在Eclipse中配置相應(yīng)的動(dòng)態(tài)鏈接庫(kù):`pkg-config --cflags --libs gtk+-2.0`
3 游戲設(shè)計(jì)思路
本文主要運(yùn)用的是鏈表結(jié)構(gòu)體等知識(shí),游戲中用到的導(dǎo)彈,坦克,墻等的屬性都用結(jié)構(gòu)體來(lái)實(shí)現(xiàn),而且導(dǎo)彈,坦克的運(yùn)動(dòng)運(yùn)用的是鏈表遍歷的知識(shí)。在游戲中,墻是靜止的,導(dǎo)彈是不斷運(yùn)動(dòng)的,當(dāng)導(dǎo)彈擊中坦克或者不同墻,則產(chǎn)生不同的效果,擊中磚墻導(dǎo)彈和墻同時(shí)消失,擊中鋼墻導(dǎo)彈消失,擊中水面,草叢,導(dǎo)彈穿墻而過(guò)。對(duì)于坦克,鋼墻、磚墻和水面坦克是不能越過(guò)的,草叢則是可以穿越的。核心是思想通過(guò)是操縱容器的相關(guān)控件進(jìn)行產(chǎn)生,移動(dòng),銷毀。
6 實(shí)驗(yàn)小結(jié)
通過(guò)本實(shí)驗(yàn),使我對(duì)鏈表,結(jié)構(gòu)體等C語(yǔ)言的相關(guān)知識(shí)的理解進(jìn)一步加深,同時(shí)加強(qiáng)了對(duì)CTK等圖形用戶編程的工具的運(yùn)用,使自己的對(duì)計(jì)算機(jī)語(yǔ)言的運(yùn)用進(jìn)一步加深,同時(shí)增強(qiáng)自己的實(shí)踐能力。
參考文獻(xiàn):
[1] 楊濤.Linux管理員指南[M].北京:機(jī)械工業(yè)出版社,2001.
[2] Richard Petersen .Linux 管理員指南[M].北京:北京希望電子出版社,2002.
[3] 蔣先華.校園網(wǎng)絡(luò)組建與應(yīng)用[M].北京:科學(xué)出版社,2003.
[4] 賈文峰, 白琳.構(gòu)建基于Intarnet 的企業(yè)信息系統(tǒng)[J].洛陽(yáng)大學(xué)學(xué)報(bào),2001, 16(4).
[5] 陳明.軟件工程學(xué)教程[M].北京:科學(xué)出版社,2002.