Step by Step,用JAVA做一个FLAPPYBIRD游戏(二)

9 篇文章 0 订阅

开始菜单的实现

按我们上一节的程序总框架,我们要实现开始菜单,主要就是实现开始菜单的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都不会再调用了,也就实现了点击开始游戏的功能。

好的,开始菜单就是这么简单,下一篇,我们开始做游戏界面的滚动背景。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值