• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java实战之飞翔的小鸟小游戏

java 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论
文章目录[隐藏]

前言

一个简单的单机小游戏:flypybird ,用来巩固java基础。

涉及主要知识点:JFrame 、 JPanel 、 继承、 键盘/鼠标监听 、 多线程 、 工具类设计

 提示:这是大致的实现过程,实际实现过程有一定的修改,具体以源码为准。

一、大体思路

1、首先要有一个框架,作为主程序入口,这里使用 JFrame  类。

2、然后需要有一个画布,用来把游戏场景画上去,然后在上面添加键盘/鼠标监听来控制,这里使用的是 JPenal 类。

3、需要创建几个类:小鸟、地面、障碍物柱子、一个获取图片的工具类

4、然后逐步添加到画布中,实现对应的功能

二、具体步骤

2.1 创建窗体类

相当于窗户的框架,有了框架才能装玻璃。然后也是主程序执行的入口

2.1.1 具体代码

public class MainFrame extends JFrame {
 
    /* 图标 */
    BufferedImage Icon;
 
    /*
     * 构造器用来初始化框架*/
    public MainFrame() throws IOException {
        /* 设置图标 */
        Icon = ImageUtil.getImage("bird1_1.png");
        setIconImage(Icon);
        /* 设置关闭 */
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        /* 设置标题 */
        setTitle("飞翔的小鸟");
        /* 设置尺寸*/
        setSize(298, 550);
        /* 设置大小不可变 */
        setResizable(false);
        /* 设置窗体居中 */
        setLocationRelativeTo(null);
    }
 
 
    /*
     * 主程序
     * */
    public static void main(String[] args) throws IOException {
        
        MainFrame mainFrame = new MainFrame();
        mainFrame.setVisible(true);
 
    }
}

2.1.2 效果展示

2.1.3 小结

大体框架做好,考虑到后面还需要使用比较多的图片,因此接下来先建一个工具类,用来获取图片资源。

三、创建一个获取图片的工具类

3.1 具体代码

/*
 * 工具类,用来获取图片
 * */
public class ImageUtil {
    public static BufferedImage getImage(String name) throws IOException {
       
        return ImageIO.read(new BufferedInputStream(new FileInputStream("birdGame/flyBird/" + name)));
    }
}

3.2 小结

图片获取方式改为用工具类获取,只需要输入图片名+格式。后期方便减少重复代码的书写。

四、创建画布

使用 Jpanel 类,创建画布(相当于玻璃) ,就能在上面画游戏的画面了。后期还需要在上面添加鼠标/键盘监听。

4.1 具体代码

public class GameJPenal extends JPanel {
    /*
     * 各种参数应该设置在这
     * */
    BufferedImage bg; 
    
    /*
     * 构造方法用来完成数据的初始化
     * */
    public GameJPenal() throws IOException {
        bg = ImageUtil.getImage("bg_day.png"); 
    }
    
    /*
     * 开始游戏的方法
     * */
    public void start() {
        gameStart = true;
        Thread myThread = new Thread(new MyThread());
        myThread.start();
    }
 
 
    //绘制的方法
    @Override
    public void paint(Graphics g) { 
        g.drawImage(bg, 0, 0, 288, 512, null);     //背景
       
    }
}

4.2 效果展示

先在main方法中创建对象,把画布添加到框架里面,注意要重新在最后设置可见,否者看不到背景

/*
     * 主程序
     * */
    public static void main(String[] args) throws IOException {
 
        MainFrame mainFrame = new MainFrame();
 
        GameJPenal gameJPenal = new GameJPenal();
 
        mainFrame.add(gameJPenal);  /* 画布添加到框<strong>本文来源gaodai#ma#com搞@@代~&码*网2</strong>架上 */
 
        mainFrame.setVisible(true);
 
        gameJPenal.requestFocus(); /* 请求屏幕焦点 ,否则无法实现键盘监听 */
 
    }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java实战之飞翔的小鸟小游戏

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址