Android_(遊戲)打飛機06:後續

來源:互聯網
上載者:User

標籤:線上   hide   分享   玩家   this   idt   android開發   array   載入   

 

 

 

(遊戲)打飛機01:前言  傳送門

(遊戲)打飛機02:遊戲背景滾動  傳送門

(遊戲)打飛機03:控制玩家飛機   傳送門 

(遊戲)打飛機04:繪畫敵機、添加子彈    傳送門

(遊戲)打飛機05:處理子彈,擊中敵機,添加計分板   傳送門

(遊戲)打飛機06:後續  傳送門

 

 

 

添加遊戲聲音

 

 

    private SoundPool pool=null;    private int sound_bomb=0;    private int sound_gameover=0;    private int sound_shot=0;

 

 1. SoundPool最大隻能申請1M的記憶體空間,這就意味著我們只能用一些很短的聲音片段,而不是用它來播放歌 曲或者做遊戲背景音樂。   2. SoundPool提供了pause和stop方法,但這些方法建議最好不要輕易使用,因為有些時候它們可能會使你的程式莫名其妙的終止。Android開發網建議使用這兩個方法的時候儘可能多做測試工作,還有些朋友反映它們不會立即中止播放聲音,而是把緩衝區裡的資料播放完才會停下來,也許會多播放一秒鐘。   3. SoundPool的效率問題。其實SoundPool的效率在這些播放類中算是很好的了,這可能會影響使用者體驗。也許這不能管SoundPool本身,因為到了效能比較好的Droid中這個延遲就可以讓人接受了。
SoundPool注意事項

 

        //載入聲音        pool= new SoundPool(3, AudioManager.STREAM_SYSTEM,5);        sound_bomb=pool.load(getContext(),R.raw.bomb,1);        sound_gameover=pool.load(getContext(),R.raw.gameover,1);        sound_shot=pool.load(getContext(),R.raw.shot,1);

 

  Android的SoundPool  傳送門

 

  play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)   播放聲音

  其中leftVolume和rightVolume表示左右音量,

    priority表示優先順序,

    loop表示迴圈次數,

  rate表示速率,如 //速率最低0.5最高為2,1代表正常速度
  sp.play(soundId, 1, 1, 0, 0, 1);
  而停止則可以使用 pause(int streamID) 方法,這裡的streamID和soundID均在構造SoundPool類的  

  第一個參數中指明了總數量,而id從0開始

 

  添加子彈聲音

         if(selectfeiji!=null){                    if(zidan_num==5){                        pool.play(sound_shot,1,1,1,0,1);                        zidans.add(new Zidan(selectfeiji,zidan));                        zidan_num=0;                    }                    zidan_num++;                }

 

 

  添加在子彈擊中敵機的時候添加爆炸聲音

    //受到攻擊        public void shoudaogongji(ArrayList<Zidan> zidans){            if(!state){                for(GameImage zidan:(List<GameImage>)zidans.clone()){                    if(zidan.getX()>x&&zidan.getY()>y                            &&zidan.getX()<x+width                            &&zidan.getY()<y+height){                        //子彈擊中敵機了                        zidans.remove(zidan);                        state=true;                        bitmaps=baozhas;                        fenshu+=10;                        pool.play(sound_bomb,1,1,1,0,1);                        break;                    }                }            }        }

  聲音不放線上程中會可能會由於記憶體的問題導致聲音播放時間延遲0.5S,聽起來會有點彆扭

 

 

 

線程中播放聲音

 

  建立遊戲聲音播放線程

    private class SoundPlay extends Thread{        int i=0;        public SoundPlay(int i){            this.i=1;        }        public void run(){            pool.play(i,1,1,1,0,1);        }    }

 

 

  添加子彈聲音

       if(selectfeiji!=null){                    if(zidan_num==5){                        new SoundPlay(sound_shot).start();                    //    pool.play(sound_shot,1,1,1,0,1);                        zidans.add(new Zidan(selectfeiji,zidan));                        zidan_num=0;                    }                    zidan_num++;                }

 

 

  添加在子彈擊中敵機的時候添加爆炸聲音

    //判斷敵機是否被擊中        private boolean state=false;        //受到攻擊        public void shoudaogongji(ArrayList<Zidan> zidans){            if(!state){                for(GameImage zidan:(List<GameImage>)zidans.clone()){                    if(zidan.getX()>x&&zidan.getY()>y                            &&zidan.getX()<x+width                            &&zidan.getY()<y+height){                        //子彈擊中敵機了                        zidans.remove(zidan);                        state=true;                        bitmaps=baozhas;                        fenshu+=10;                        new SoundPlay(sound_bomb).start();                        // pool.play(sound_bomb,1,1,1,0,1);                        break;                    }                }            }        }

 

 

 

App ICON

 

Android Studio中設定App Icon   百度經驗:傳送門

 

開啟---檔案----new----image asset

 

  設定表徵圖儲存檔案到drawable時後有時會在Asset Studio裡面Path找不到圖片路徑,這時可以找到mipmap-hdpi檔案路徑,把照片放到那下面

D:\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\res\mipmap-hdpi

 

 

Android_(遊戲)打飛機06:後續

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.