李少芳
莆田學院 機電與信息工程學院,福建 莆田 351100
當前由于游戲本身的屬性發生改變以及智能手機、平板電腦等移動設備的功能越來越強大,游戲產業得到飛速發展,已成為我國重點扶持項目。由于Java 技術的不斷發展,Java 軟件的升級越來越方便,部署更簡單,Java 程序的運行速度有了顯著提升,從而使得Java 處理比較復雜的3D 圖形成為可能。Java3D 等技術的出現,使Java 語言可以方便地利用顯卡日益強大的硬件加速能力。許多廠商都在家用游戲機上支持Java,增加對swing 硬件的加速支持。而隨著智能手機的發展,有的手機性能已接近或超過電腦的水準,手機游戲的市場份額也越來越大。由于手機的操作系統種類繁多,跨平臺的Java 一直備受青睞[1-3]。
從市場商業角度長遠效益考慮,在開發Java 游戲時,一要多考慮社交因素在游戲中的重要性,用社交帳號登錄邀請好友等,許多玩家都喜歡和好友一起玩游戲。二是對于活躍用戶或鐵桿游戲玩家,要考慮存儲歷史游戲信息,并考慮更佳的游戲體驗,吸引了更多游戲用戶。三是加入適當的盈利方式,如下載付費、游戲內廣告和游戲內付費等。四要多嘗試開發跨平臺游戲,因為有的玩家鐘愛臺式電腦,有的鐘愛平板電腦、手機,不同平臺有自己的用戶群,而每一個新平臺的出現都將為游戲的制作帶來新的可能性。
消除類游戲閑暇時動動手指就可以玩,耐玩、解壓,操作簡單,老少皆宜。目前網上好玩的消除類游戲五花八門,種類繁多,有俄羅斯方塊、開心消消樂、連連看、泡泡龍、呆萌小怪物、珠寶島、尋寶者、糖果傳奇、歡樂碰碰貓、瘋狂糖果爆炸、繽紛碰碰球、圣誕節消除、神奇廚師等。例如,尋寶者是一款寶藏消除益智游戲,使用寶石來打造海島城市,通過海洋旅游和解決神圣的難題,搭配珠寶的三色球,獲到巨大的寶藏。糖糖消除是一款趣味休閑消除玩法游戲,滑動手指讓三個同色甜點連接在一起即可消除,通過消除多個甜點獲得強力甜點,每個強力甜點都有獨特的爆破效果。圣誕節消除是一款三消匹配比賽游戲,充滿了許多新的挑戰。點燃蠟燭,清除積雪尋找禮物,抓住跳雪人,填充禮品袋。把圣誕老人放到煙囪里,點燃鞭炮,填滿大襪子,看看冰箱里有什么。可見,每一款游戲都有眾多精心設計的關卡和任務[4-6],一旦開始,讓人愛不釋手。
本文設計的鍵盤指法練習軟件,是一款休閑學習的消除類游戲,使用Java 的Swing 框架編程,采用Eclipse 集成開發環境進行設計。第一關功能是根據出現的大小寫字母和數字,在鍵盤上按鍵可以消除對應的字母或數字,在限定時間內,盡可能地輸入正確的字母或數字,每輸對一個得10 分,挑戰高分。后面關卡可以增加難度,消除單詞。
首先定義背景圖片bg,初始化bg,設置其存儲路徑為d:\temp\jpg\bg2.jpg。并在 public void paint(Graphics g)中設置背景圖片隨主窗體的大小自適應顯示。在public void run()方法中,使用repaint()刷新界面時,需重新加載圖片,出現閃爍現象,解決辦法之一是定義Graphics 對象g,改成使用Graphics g=getGraphics()和paint(g)。代碼如下:

主窗體框架設計界面,如圖1 所示。隨機生成若干個大寫字母A-Z、小寫字母a-z 和數字字符0-9,并調用getRandomColor()方法設置為隨機色顯示。初始成績設置為0。添加鍵盤響應事件,檢測到一個正確的按鍵,則對應的字母或數字消除,相應增加成績10 分。
設置為隨機色的相關代碼如下:

隨機生成acount 個大寫字母A-Z、小寫字母a-z 和數字字符0-9,第i 個字符c[i]的顯示位置(x[i],y[i])也是隨機的。這里調用生成隨機數,也可以創建隨機類對象來產生隨機數[7]。相關代碼如下:

主窗體界面成績以及各字符隨機色顯示的代碼如下:

當前一組acount 個字符被消除或下落超出窗體邊界,重新產生另一組acount 個字符。


鍵盤按下的響應事件代碼如下:

定義一個KeyListenerθ1 類,繼承JFrame 類,在其構造方法中添加代碼如下:


當創建線程t,并通過t.start()啟動線程后,自動會調用run()方法運行產生字符消除動畫效果。
多彩字符消消樂游戲軟件是一款簡單休閑的消除類游戲,也適合于鍵盤指法練習。第1 關卡的設計僅僅是通過鍵盤操作消除大小寫字母或數字,每輸對一個字符得10 分。也可以對沒有被消除就下落的字符,設計減分操作。可以設置不同難度關卡,比如第2 關可以通過增加消除單詞的操作來增加游戲過關難度。進一步的改進可以是用圖片代替字符,比如隨機出現的魚或飛機,而改用左右箭頭控制按鍵位置,以射擊方式標示出火力;還可以添加字母消除或下落的游戲音效和背景音樂設置等。本文用到的編程技術可以運用到更多游戲開發中,并加以改進推廣,也可以應用到嵌入式開發或基于Android 平臺的移動應用開發中,期望開發出更多更強的軟件來。