• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Java的射擊游戲的開發(fā)與設(shè)計(jì)

    2014-04-29 00:44:03曾令思余婷席一
    電腦迷 2014年15期

    曾令思 余婷 席一

    摘 要 隨著計(jì)算機(jī)時(shí)代的到來,游戲受到人們越來越多的青睞。以單機(jī)游戲?yàn)楸尘?,探討了射擊類游戲的諸多設(shè)計(jì)要點(diǎn),包括體系結(jié)構(gòu),系統(tǒng)安全等。本游戲是一款休閑益智的射擊游戲。在JAVA的基礎(chǔ)上,極大的優(yōu)化了代碼,減少了代碼冗余,而且易于查看游戲的運(yùn)行界面。

    關(guān)鍵詞 射擊游戲 代碼實(shí)現(xiàn) JAVA游戲系統(tǒng)

    中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A

    1系統(tǒng)架構(gòu)

    系統(tǒng)構(gòu)架主要有兩方面組成,一個(gè)是開始界面,另一個(gè)是主函數(shù)。開始界面主要功能是實(shí)現(xiàn)跳轉(zhuǎn),在開始界面中也應(yīng)當(dāng)具有背景,音樂等。在主函數(shù)中,主要調(diào)用我方子彈,桃心,我方滅火器,敵方蜜蜂,背景類,音樂類等功能模塊。

    (1)在用戶點(diǎn)擊開始界面的“PLAY”按鈕后,可自動跳轉(zhuǎn)到主游戲界面。這是通過ActionListener實(shí)現(xiàn)監(jiān)聽鍵盤動作的。在GameButton中主要是通過如下方式監(jiān)聽鍵盤點(diǎn)擊的:

    @Override

    public void actionPerformed(ActionEvent e) {

    if(e.getActionCommand( ).equals("btn")){

    close_MainWindows( );

    new GameButtonStart( ).showGame( );

    return;

    (2)實(shí)現(xiàn)方在窗體顯示方法中添加關(guān)閉監(jiān)聽:

    this.addWindowListener(new closeWindow()); this.setVisible(true);

    再在窗體顯示方法外建立關(guān)閉窗口方法:

    public void close_MainWindows( ) {

    this.setVisible(false);}

    (3)在游戲中可調(diào)用音樂類,實(shí)現(xiàn)播放音樂的功能。其主要實(shí)現(xiàn)方法是在類外部定義一個(gè)Music類,新建一個(gè)有音樂的music文件夾,再在主類中調(diào)用Music類。

    2游戲設(shè)計(jì)中需要解決的主要問題分析

    (1)背景圖層的循環(huán)顯示和閃爍。由于背景圖層只有一張圖片,若想讓游戲有移動的真實(shí)感,則應(yīng)當(dāng)讓圖片一直不停的移動。以圖片為參照物,就會感覺蜜蜂,滅火器的移動更加逼真。另外,圖片初始時(shí)會 出現(xiàn)閃爍問題,這時(shí)應(yīng)當(dāng)調(diào)用update()方法消除閃爍。

    (2)蜜蜂和滅火器的碰撞。這時(shí),可在我方滅火器的子彈類中,和蜜蜂類中獲取蜜蜂的矩形:

    //獲取蜜蜂的矩形

    public Rectangle getRectangle(){

    return new Rectangle(planeBulletX, planeBulletY, planeBulletWidth, planeBulletHeight);}

    3關(guān)鍵技術(shù)

    (1)背景的實(shí)現(xiàn):滾動背景主要通過move()來實(shí)現(xiàn)。在主程序調(diào)用BackGround類中的draMe(Graphics)時(shí),就會自動的調(diào)用move()函數(shù),實(shí)現(xiàn)屏幕的滾動播放。

    (2)內(nèi)存的優(yōu):很多程序由于沒有采用正確的方法分配和使用內(nèi)存,不僅占用內(nèi)存較多,而且運(yùn)行效率不高。

    4游戲的實(shí)現(xiàn)

    本游戲的開發(fā)是在Microsoft Windows 2007操作系統(tǒng)下,使用JAVA語言開發(fā)的。

    (1)開始界面的實(shí)現(xiàn):用戶進(jìn)入游戲系統(tǒng)后,首先出現(xiàn)的是開始界。在開始界面中,用戶點(diǎn)擊“PLAY”按鈕,在偵聽到點(diǎn)擊了“PLAY”按鈕后,跳轉(zhuǎn)到游戲進(jìn)行界面。

    (2)滾動屏幕的實(shí)現(xiàn):在游戲界面中,會出現(xiàn)背景圖片。BackGround的實(shí)例化bg的初始化是在GameStart中,并且把GameStart的當(dāng)前值傳給bg對象,以便于在程序退出時(shí),能夠用主類調(diào)用它的退出方法closeWindow。在BackGround類中,設(shè)置一個(gè)bgwidth 和一個(gè)bgHeight分別設(shè)置背景圖片的寬和高。再設(shè)置一個(gè)bgY1 和一個(gè)bgY2 用來控制圖片的移動。在BackGround中,寫一個(gè)movie()方法,隨著時(shí)間的改變而改變。這時(shí),就會出現(xiàn)滾動的屏幕。

    (3)主程序的實(shí)現(xiàn):當(dāng)玩家按下W,A,S,D分別對應(yīng)的上,左,下,右時(shí),函數(shù)Plane類中的move()方法的變量y,x加5或減5。相對應(yīng)的,滅火器的位置會向上,左,下,右飛行一定距離。當(dāng)鍵盤松開時(shí),滅火器會停止不動。在moie()方法中,會調(diào)用方法location()。

    public void location() {

    if (bU && !bD && !bL && !bR) {

    planeDir = Direction.U;

    }

    if (!bU && bD && !bL && !bR) {

    planeDir = Direction.D;

    }

    if (!bU && !bD && bL && !bR) {

    planeDir = Direction.L;

    }

    if (!bU && !bD && !bL && bR) {

    planeDir = Direction.R;

    }

    if (!bU && !bD && !bL && !bR) {

    planeDir = Direction.STOP;

    參考文獻(xiàn)

    [1] Bruce Eckel,陳昊鵬.Java編程思想[M].北京:機(jī)械工業(yè)出版社,2002.

    [2] Adam Drozdex,數(shù)據(jù)結(jié)構(gòu)與算法(Java語言版)[M].北京:機(jī)械工業(yè)出版社,2003.

    [3] Curtis D.Java,RM I and Corba[M].white paper of Object Management Group,1996.

    永福县| 伽师县| 遵化市| 赫章县| 治县。| 涪陵区| 怀宁县| 丰顺县| 渭源县| 花莲县| 昭苏县| 陕西省| 丹东市| 银川市| 汉沽区| 华宁县| 仙桃市| 清水河县| 义马市| 乌什县| 东海县| 闵行区| 洱源县| 广水市| 惠州市| 广昌县| 长沙市| 汕头市| 高邑县| 庆阳市| 玉环县| 青海省| 兴山县| 峡江县| 集安市| 黔江区| 南城县| 南川市| 墨脱县| 改则县| 呼图壁县|