Step by Step,用JAVA做一個FLAPPYBIRD遊戲(二)

開始菜單的實現

按我們上一節的程序總框架,我們要實現開始菜單,主要就是實現開始菜單的Entity即Menu類。
而Menu類中主要的就是draw和logic兩個方法,這兩個方法一個負責開始菜單的繪製,一個負責開始菜單的邏輯。
下面是Menu完整的實現代碼:

public class Menu {

    private final Image[] IMG_GUID ={ 
        new ImageIcon("images/guid1.png").getImage(),
        new ImageIcon("images/guid2.png").getImage(),
        new ImageIcon("images/guid3.png").getImage(),
            };
    private final int MENU_STATE_1 = 0;
    private final int MENU_STATE_2 = 1;
    private final int MENU_STATE_3 = 2;
    private int MENU_STATE=0;
    private int count;
    public void draw(Graphics g) {
        g.drawImage(IMG_GUID[MENU_STATE], 0, 0, null);
    }

    public void logic() {
        count++;
        if(count%4==0) {
        MENU_STATE++;
        }
        if(MENU_STATE>=3) {
            MENU_STATE=0;
        }
    }

}

看到IMAGE_GUID這個Image數組了嗎?這裏我們先介紹下java如何製作動畫效果。

如何產生動畫

IMG_GUID是一系列圖片,可以從下載的資源發現,這系列圖片就是一個動畫的每一幀。當我們按順序播放他們時,就有了動畫的效果。
MENU_STATE表示當前播放到了第幾幀。在logic裏面,改變他的值,這麼count每一個自增,每個4的倍數改變MENU_STATE,也就是主循環每循環4次(還記得主循環延遲50ms嗎?),間隔200ms播放下一幀圖片。

現在,我們可以運行查看一下效果。
開始菜單

至此我們的開始菜單就完成了,你可能要問,那切換界面呢?還記得上一篇介紹的gameState嗎?在開始菜單的GAME_STATE_MENU下,按下鼠標左鍵,就是把gameState設置爲GAME_STATE_PLAYING,此時我們的開始菜單在主循環中,draw和logic都不會再調用了,也就實現了點擊開始遊戲的功能。

好的,開始菜單就是這麼簡單,下一篇,我們開始做遊戲界面的滾動背景。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章