摘要:在當(dāng)今互聯(lián)網(wǎng)時(shí)代,我國(guó)網(wǎng)民數(shù)量急劇增長(zhǎng),規(guī)模高達(dá)十幾億,其中為緩解生活壓力、放松消遣的占多數(shù),放松方式包括聊天、刷視頻和玩游戲等。網(wǎng)絡(luò)游戲可滿足眾多網(wǎng)民的需求,成為其主要解壓方式之一。在諸多游戲編程語(yǔ)言中,開發(fā)者熱衷于時(shí)Java編程語(yǔ)言的設(shè)計(jì)。文章采用Java編程語(yǔ)言和SQLscrver 2000數(shù)據(jù)庫(kù)相結(jié)合,開發(fā)設(shè)計(jì)了名為“世界和平”的小游戲,并客觀討論了該游戲的設(shè)計(jì)成效。
關(guān)鍵詞:網(wǎng)絡(luò)游戲;Java;Swing
中圖法分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A
1 概述
1.1 開發(fā)背景
在諸多編程語(yǔ)言中,每種語(yǔ)言都有自己的特點(diǎn),如簡(jiǎn)單易學(xué)的Python 語(yǔ)言、通用的命令式編程C 語(yǔ)言、有“一次編寫,隨處可用” 標(biāo)簽之稱的Java 語(yǔ)言等。其中,Java 以其平臺(tái)獨(dú)立、分布式、多線程、動(dòng)態(tài)等強(qiáng)大的特點(diǎn)一直處于優(yōu)勢(shì)地位,深受程序員的喜愛,甚至多年位居編程語(yǔ)言排行榜之首[1] 。用戶界面開發(fā)工具包Swing 是一個(gè)應(yīng)用于Java 應(yīng)用程序開發(fā)的工具包,它以抽象窗口工具包(AWT)為基礎(chǔ),使跨平臺(tái)應(yīng)用程序可以采用任意可插拔的外觀風(fēng)格[2~5] ,以及使開發(fā)員可以用少量的代碼來創(chuàng)建用戶界面。
1.2 開發(fā)目的與意義
面對(duì)飛速發(fā)展的社會(huì),人們處于不同的年齡階段,都會(huì)面對(duì)來自不同方面的壓力,為更加積極地投入生活、熱愛生活、享受生活,我們必須適度地釋放壓力。解壓方式多種多樣,對(duì)網(wǎng)民而言,網(wǎng)絡(luò)游戲可滿足他們的諸多需求。
網(wǎng)絡(luò)游戲是具有可持續(xù)性的個(gè)體性的多人在線游戲[6~7] ,以互聯(lián)網(wǎng)為傳輸媒介,旨在實(shí)現(xiàn)娛樂、休閑、交流和取得虛擬成就。在互聯(lián)網(wǎng)時(shí)代,它的出現(xiàn)讓我們的生活變得更加多彩,精神物質(zhì)世界更加豐富,使眾多網(wǎng)民的壓力得以有效釋放。本文使用Java 語(yǔ)言編寫了名為“世界和平”的小型網(wǎng)絡(luò)游戲,可以使人們?cè)谛蓍e時(shí)段得到更有效的解壓,獲得更多的快樂。
1.3 開發(fā)環(huán)境
與C 和C++等編程語(yǔ)言類似,Java 語(yǔ)言也是一種純粹的面向?qū)ο笳Z(yǔ)言,它繼承了C++面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn),同時(shí)也摒棄了C++的部分缺點(diǎn),是一種分布式的面向?qū)ο笳Z(yǔ)言,具有平臺(tái)無關(guān)性、簡(jiǎn)單性、面向?qū)ο?、多線程、安全性等特點(diǎn)[8~9] ,鑒于Java 編程語(yǔ)言的優(yōu)勢(shì),本文選擇它來設(shè)計(jì)小型網(wǎng)絡(luò)游戲。
圖形用戶界面(Graphical User Interface, GUI,又稱圖形用戶接口)是指采用圖形方式顯示計(jì)算機(jī)操作用戶界面[10] 。在這個(gè)界面中,用戶所面對(duì)的都是圖形對(duì)象,可以通過鼠標(biāo)對(duì)其進(jìn)行操作,其應(yīng)用的是計(jì)算機(jī)圖形學(xué)技術(shù),摒棄了傳統(tǒng)字符界面的復(fù)雜操作,優(yōu)勢(shì)很明顯。雖然不同平臺(tái)的GUI 組件顯示是不同的,但如果各平臺(tái)運(yùn)行的是用戶界面開發(fā)工具包(Swing)開發(fā)的應(yīng)用程序,就能使GUI 組件顯示的風(fēng)格得到統(tǒng)一,這是因?yàn)榫幊倘藛T在設(shè)計(jì)時(shí)使用了Swing 組件,使跨平臺(tái)的GUI 組件也能制定統(tǒng)一的外觀和風(fēng)格。同時(shí)它完全由Java 語(yǔ)言編寫,而Java 又是不局限于操作系統(tǒng)的編程語(yǔ)言,可以在任何平臺(tái)上運(yùn)行,通常其被稱為“輕量級(jí)(light?weight) 組件”[11] 。
它采用的是一種MVC 的設(shè)計(jì)范式,即“模型?視圖?控制”(Model?View ?Controller),其中模型和視圖分別用于保存和顯示內(nèi)容,控制器用來控制用戶輸入[12~14] 。
它與抽象窗口工具包(AWT)組件的最大區(qū)別就是沒有本地代碼,不依賴于操作系統(tǒng)的支持且優(yōu)勢(shì)明顯,Swing 比AWT 組件具有更強(qiáng)的實(shí)用性,因?yàn)椋粒祝?組件是通過與具體平臺(tái)相關(guān)的對(duì)等類(Peer)來實(shí)現(xiàn)的,而Swing 在不同平臺(tái)上的表現(xiàn)卻是一致的,并且它有能力提供本地窗口系統(tǒng)不支持的其他特性。
在SQL Server 7.0 的發(fā)展基礎(chǔ)上,SQL Server 2000也隨之誕生,它是一個(gè)功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)[15] 。SQL Server 2000 是在Windows NT/2000/ XP上運(yùn)行得最好的數(shù)據(jù)庫(kù)[16] ,可以幫助各大中小型規(guī)模的企業(yè)來管理數(shù)據(jù),是在創(chuàng)建企業(yè)應(yīng)用程序時(shí)首選的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。在用戶需求不斷增長(zhǎng)和技術(shù)不斷創(chuàng)新的背景下,SQL Server 2000 已在可收縮性、可靠性、易用性、數(shù)據(jù)倉(cāng)庫(kù)等方面獲得了重大突破,更加具有創(chuàng)造性,現(xiàn)已成為業(yè)界領(lǐng)先的數(shù)據(jù)庫(kù)管理系統(tǒng)。
本文采用Java 編程語(yǔ)言和SQL server 2000 相結(jié)合,設(shè)計(jì)了名為“世界和平”的小型網(wǎng)絡(luò)游戲,具體包括分析游戲結(jié)構(gòu)、制作用戶界面(UI)、開發(fā)游戲、討論游戲的發(fā)展等。
2 程序分析
2.1 程序基本功能描述
通過參考其他小型游戲的邏輯,本文設(shè)計(jì)了該程序的游戲登錄、關(guān)卡選擇、人機(jī)互動(dòng)、獎(jiǎng)勵(lì)機(jī)制、玩家共創(chuàng)和游戲介紹等功能。
2.2 可行性分析
本程序的可行性分析主要包括以下幾個(gè)方面的內(nèi)容。
( 1)技術(shù)可行性。由于各種開發(fā)游戲軟件橫空出世,且網(wǎng)上有很多游戲的開源代碼,使得開發(fā)游戲非常便捷,不需要再耗費(fèi)很多人力、物力、精力等,玩家可以在任何地方進(jìn)行游戲。將SQL Server 2000 數(shù)據(jù)庫(kù)和Java 編程語(yǔ)言相結(jié)合,可以開發(fā)出簡(jiǎn)便、有趣、穩(wěn)定的小游戲,因此技術(shù)上是可以實(shí)現(xiàn)的。
(2)設(shè)備可行性。該程序是小型網(wǎng)絡(luò)游戲平臺(tái)。
由于手機(jī)、計(jì)算機(jī)普及和網(wǎng)絡(luò)大面積的覆蓋,因此可以大概率實(shí)現(xiàn)隨時(shí)隨地進(jìn)行游戲。
(3)操作可行性。該程序最大的優(yōu)勢(shì)就是操作簡(jiǎn)單。在閑暇時(shí)間,用手機(jī)、計(jì)算機(jī)等設(shè)備均可完成游戲體驗(yàn),釋放壓力,愉悅身心。
2.3 程序需求分析
在設(shè)計(jì)之前,我們對(duì)程序的需求進(jìn)行分析,構(gòu)思并確定了該程序應(yīng)該包含3 類用戶,分別是管理員、玩家和游客。各類用戶的具體描述如下。
(1)管理員。管理員是該程序最高權(quán)限的擁有者,主要維護(hù)整個(gè)程序。當(dāng)游戲出現(xiàn)漏洞或者需要更新資源時(shí),管理員需要設(shè)置玩家和游客暫時(shí)不能登錄游戲。
( 2)玩家。玩家負(fù)責(zé)體驗(yàn)程序,在具體操作過程中,程序中產(chǎn)生的數(shù)據(jù)都會(huì)被儲(chǔ)存到數(shù)據(jù)庫(kù),無需重新開始游戲就可以繼續(xù)原來的操作體驗(yàn)。當(dāng)玩家發(fā)現(xiàn)程序中存在BUG 時(shí),可及時(shí)向管理員提交反饋申請(qǐng),待管理員處理。
(3)游客。游客是不需要登錄就可以體驗(yàn)程序的,但程序中產(chǎn)生的數(shù)據(jù)是不會(huì)存儲(chǔ)到數(shù)據(jù)庫(kù),重新登錄即為重新開始。當(dāng)游客發(fā)現(xiàn)程序中存在BUG時(shí),無權(quán)向管理員提交反饋申請(qǐng)。
3 程序?qū)崿F(xiàn)
3.1 游戲界面
“世界和平”的游戲界面如圖1 所示,玩家點(diǎn)擊“世界和平”按鈕進(jìn)入登錄頁(yè)面后,輸入賬號(hào)和密碼即可登錄游戲。
3.2 程序流程圖
當(dāng)玩家登錄“世界和平”游戲后,就會(huì)調(diào)用該游戲的代碼并進(jìn)入該游戲關(guān)卡選擇界面,如圖2 所示。玩家需選擇要玩的關(guān)卡,進(jìn)入該關(guān)卡對(duì)應(yīng)的游戲界面。
此外,我們還在該頁(yè)面設(shè)計(jì)了紅、綠2 個(gè)按鈕,給后續(xù)游戲的擴(kuò)展打下了基礎(chǔ)。
當(dāng)玩家隨機(jī)選擇一個(gè)關(guān)卡進(jìn)入后,就可以看到游戲已經(jīng)開始。其中,綠色小圓球是玩家可以操控的角色,鍵盤上W,A,S,D 4 個(gè)鍵是供玩家上、下、左、右移動(dòng)的方位功能按鍵。黃色的小星星是游戲設(shè)置的可加分元素,玩家用綠色小圓球碰到它就可以加1 分,分?jǐn)?shù)顯示在界面的左上角,初始分?jǐn)?shù)是0。黑色的墻體是不可以穿越的。初始分?jǐn)?shù)界面如圖3 所示,積分后的界面如圖4 所示。
在玩家操作綠色小球的過程中,如果碰到了綠色的獎(jiǎng)勵(lì)箱子,黑色的墻體就會(huì)立即消失2 秒,在這2秒內(nèi),綠色的小圓球可以向任意方向移動(dòng),如圖5所示。
紅色的小球?yàn)閿撤窖策壍氖勘婕以诓僮鬟^程中如果不小心碰到紅色小球,則判定為游戲失敗,會(huì)立馬結(jié)束游戲,如圖6 所示。
3.3 關(guān)鍵代碼
在該游戲設(shè)計(jì)過程中,關(guān)卡選擇界面是最關(guān)鍵的一個(gè)頁(yè)面也是一個(gè)選擇模塊,按照玩家選擇的不同關(guān)卡進(jìn)行不同的處理,最后將信息寫發(fā)到XZ 變量中供其他頁(yè)面使用。
4 結(jié)束語(yǔ)
如今,網(wǎng)絡(luò)游戲在眾多解壓娛樂方式中成為主流,越來越多的開發(fā)者致力于設(shè)計(jì)小型好玩的程序小游戲。本文采用Java 編程語(yǔ)言和SQL server 2000 數(shù)據(jù)庫(kù)相結(jié)合,設(shè)計(jì)了名為“世界和平”的小型網(wǎng)絡(luò)游戲,達(dá)到了預(yù)期的測(cè)試效果。
參考文獻(xiàn):
[1] 曹嵩彭,王鵬宇. 淺析Java 語(yǔ)言在軟件開發(fā)中的應(yīng)用[J].信息記錄材料,2022,23(3):114?116.
[2] 王亞南,胡曉飛.淺析Java 中Swing 與SWT 和AWT 的區(qū)別及實(shí)現(xiàn)[J].福建電腦,2009,25(6):44+50.
[3] 王勇,洪進(jìn),杜蘭蘭,等.基于Java Swing 的找點(diǎn)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2022,28(16):96?100.
[4] 陳硯雄.Java 中Swing 事件模型的應(yīng)用[J].文教資料,2005(21):36?37.
[5] 范興.基于文化嵌入的國(guó)產(chǎn)網(wǎng)絡(luò)游戲發(fā)展策略研究[D].荊州:長(zhǎng)江大學(xué),2020.
[6] 宋永濤,劉剛,范李剛,等.Java 編程特點(diǎn)和技術(shù)的應(yīng)用分析[J].福建電腦,2019,35(6):84?85.
[7] 鄧閑.網(wǎng)絡(luò)游戲產(chǎn)業(yè)的網(wǎng)絡(luò)效應(yīng)研究[J].廣西質(zhì)量監(jiān)督導(dǎo)報(bào),2020(10):168?169.
[8] 陳小超.計(jì)算機(jī)軟件開發(fā)中JAVA 編程語(yǔ)言的應(yīng)用[J].?dāng)?shù)碼世界,2019(3):57.
[9] 陳佶.探討基于SQL Server 2000 的數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘[J].科學(xué)中國(guó)人,2017(18):126.
[10] 劉由欽.我國(guó)網(wǎng)絡(luò)游戲發(fā)展及其內(nèi)容生產(chǎn)偏向[D].武漢:武漢大學(xué),2017.
[11] 鄭歆.Java 程序設(shè)計(jì)課程的教學(xué)實(shí)踐[J].集成電路應(yīng)用,2022,39(11):94?95.
[12] 程華. 基于JAVA AWT 組件的留言板的設(shè)計(jì)及實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2016,12(29):81?82.
[13] 楊欽,徐永安,翟紅英.計(jì)算機(jī)圖形學(xué)[D].北京:清華大學(xué)出版社,2005.
[14] 王亞南,胡曉飛.淺析Java 中Swing 與SWT 和AWT 的區(qū)別及實(shí)現(xiàn)[J].福建電腦,2009,25(6):44+50.
[15] 劉艷春.使用Flash 和Java 實(shí)現(xiàn)實(shí)時(shí)網(wǎng)絡(luò)休閑游戲[J].科技創(chuàng)業(yè)月刊,2005(11):158?159.
[16] 陳硯雄.Java 中Swing 事件模型的應(yīng)用[J].文教資料,2005(21):36?37.
作者簡(jiǎn)介:郭曉麗(1993—),碩士,助教,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。