• 
    

    
    

      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.

      甘孜县| 梁山县| 屏东县| 本溪| 惠安县| 南皮县| 图木舒克市| 儋州市| 石林| 杨浦区| 阜阳市| 福建省| 巨野县| 革吉县| 轮台县| 白山市| 修武县| 古浪县| 青冈县| 包头市| 含山县| 伊金霍洛旗| 邵武市| 新宾| 全南县| 阿尔山市| 寻乌县| 肥乡县| 科技| 陇西县| 观塘区| 平遥县| 伽师县| 金秀| 武功县| 万全县| 烟台市| 登封市| 西盟| 夏河县| 衡阳县|