iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何实现接月饼小游戏
  • 820
分享到

Java如何实现接月饼小游戏

2023-06-29 08:06:37 820人浏览 安东尼
摘要

这篇文章给大家分享的是有关Java如何实现接月饼小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。主要设计设计游戏界面,用swing实现设计背景设计得分物体-月饼,碰到加一分设计障碍物-月亮,碰到会死亡监听鼠标

这篇文章给大家分享的是有关Java如何实现接月饼小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    主要设计

    • 设计游戏界面,用swing实现

    • 设计背景

    • 设计得分物体-月饼,碰到加一分

    • 设计障碍物-月亮,碰到会死亡

    • 监听鼠标的左右键,用来控制篮子左右移动

    • 设计积分系统

    • 将resource文件夹设为resource(Project Manage中可以设置),因为要用里面的图片

    功能截图

    游戏开始界面:

    Java如何实现接月饼小游戏

    Java如何实现接月饼小游戏

    代码实现

    游戏启动类

    public class Start {    public static void main(String[] args) throws URISyntaxException {        new EatGame();    }}

    核心类

    public class EatGame extends JFrame implements ActionListener, MouseListener{    private final int WIDTH = 400;    private final int HEIGHT = 800;    private int score;    private int ticks;     private boolean gameOver = false;    private GameControl control;     private List<Moon> moons;    private List<Cake> cakes;    private Timer timer;    private ChangeE changeE;        public EatGame() throws URISyntaxException {        changeE = new ChangeE(150, 650, "player.jpg", WIDTH);        moons = new ArrayList<>();        cakes = new ArrayList<>();        addMoonAndCake();                control = new GameControl(changeE, moons, cakes);        timer = new Timer(20, this);                 //add keybinds        control.addAction("Left", -20, KeyEvent.VK_LEFT);        control.addAction("Right", 20, KeyEvent.VK_RIGHT);                //add components        add(control);        addMouseListener(this);        control.addMouseListener(this);        setTitle("吃月饼");        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        setSize(WIDTH, HEIGHT);        setResizable(false);        setVisible(true);               timer.start();    }        public void addMoonAndCake() {        Random r = new Random();        int x, y;        x = 60 + (r.nextInt(35) * 2);        y = r.nextInt(20) + moons.size() * 30;        Moon moon1 = new Moon(x, y, "moon.png");        moons.add(moon1);        x = 190 + r.nextInt(35) * 2;        y = r.nextInt(20) + moons.size() * 30;        Moon moon2 = new Moon(x, y, "moon.png");        moons.add(moon2);        x = 80 + (r.nextInt(35) * 2);        y = r.nextInt(20) + moons.size() * 50;        Cake cake = new Cake(x, y, "cake.png");        cakes.add(cake);    }        private void updateFrame() {        ticks++;        for(int i = 0; i < moons.size(); i++)        {            Moon moon = moons.get(i);            if(ticks % 25 == 0 && moon.getSpeed() < 10)            {                moon.setSpeed(moon.getSpeed() + 2);            }        }        Iterator<Moon> moonIterator = moons.iterator();        while (moonIterator.hasNext()) {            Moon moon = moonIterator.next();            // 超出屏幕            if(moon.getY() > HEIGHT) {                moonIterator.remove();            } else                moon.move();        }        Iterator<Cake> cakeIterator = cakes.iterator();        while (cakeIterator.hasNext()) {            Cake cake = cakeIterator.next();            // 超出屏幕            if(cake.getY() > HEIGHT) {                cakeIterator.remove();            } else                cake.move();        }        if(moons.size() == 0) {            addMoonAndCake();        }    }    private boolean checkCollision() {        Rectangle rectangle = (Rectangle) changeE.getShape();        for(Moon moon : moons) {            Ellipse2D circle = (Ellipse2D) moon.getShape();            // 判断是否与圆形相撞            if (circle.intersects(rectangle)) {                gameOver = true;            }        }        Iterator<Cake> cakeIterator = cakes.iterator();        while (cakeIterator.hasNext()) {            Cake cake = cakeIterator.next();            Ellipse2D circle = (Ellipse2D) cake.getShape();            if (circle.intersects(rectangle)) {                score ++;   // 得分                cakeIterator.remove();            }        }        return gameOver;    }    public void actionPerfORMed(ActionEvent e)    {        if(gameOver) {            timer.stop();             control.drawEnd(control.getGraphics(), score);        } else {            //continue with game            updateFrame();            checkCollision();            control.repaint();         }    }    public void mouseClicked(MouseEvent e) {    }    public void mousePressed(MouseEvent e)    {        if(gameOver)        {            //reset game            moons.clear();            control.removeAll();             control.updateUI();             score = 0;            changeE.setX(150);            changeE.setY(650);            addMoonAndCake();            timer.start();            repaint();            gameOver = false;         }    }    public void mouseReleased(MouseEvent e)    {            }    public void mouseEntered(MouseEvent e)    {            }    public void mouseExited(MouseEvent e)    {            }}

    画面绘制

    public class GameControl extends JPanel{    private InputMap inputMap;     private ChangeE myChangeE;    private List<Moon> moons;    private List<Cake> cakes;    public GameControl(ChangeE changeE, List<Moon> moons, List<Cake> cakes)    {        this.myChangeE = changeE;        this.moons = moons;        this.cakes = cakes;        setBackground(Color.white);        inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW);      }    @Override    protected void paintComponent(Graphics g)    {        super.paintComponent(g);        // 绘制背景        ImageIcon icon=new ImageIcon(Thread.currentThread().getContextClassLoader().getResource("background.png"));        Image img=icon.getImage();        g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);        // 绘制玩家        g.drawImage(myChangeE.getImage(), myChangeE.getX(), myChangeE.getY(), this);        // 绘制月亮        for(Moon moon : moons) {            g.drawImage(moon.getImage(), moon.getX(), moon.getY(), this);        }        // 绘制月饼        for (Cake cake : cakes) {            g.drawImage(cake.getImage(), cake.getX(), cake.getY(), this);        }            }    public void drawEnd(Graphics g, int score)    {        g.setColor(Color.WHITE);        g.fillRect(50, 200, 300, 300);        g.setColor(Color.RED);        g.drawString("祝你中秋快乐,阖家欢乐!", 100, 300);        g.setColor(Color.BLUE);        g.drawString("您吃的到的月饼个数为:" + score, 100, 350);        g.setColor(Color.BLACK);        g.drawString("鼠标点击重玩", 100, 400);    }    public void addAction(String name, int deltaX, int keyCode) {        MoveAction moveAction = new MoveAction(name, deltaX);        inputMap.put(KeyStroke.geTKEyStroke(keyCode, 0), name);        getActionMap().put(name, moveAction);    }     private class MoveAction extends AbstractAction implements ActionListener {        private int myDeltaX;        public MoveAction(String name, int deltaX) {            super(name);            myDeltaX = deltaX;        }        public void actionPerformed(ActionEvent e) {            myChangeE.move(myDeltaX);        }    }}

    感谢各位的阅读!关于“Java如何实现接月饼小游戏”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    --结束END--

    本文标题: Java如何实现接月饼小游戏

    本文链接: https://www.lsjlt.com/news/323610.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Java如何实现接月饼小游戏
      这篇文章给大家分享的是有关Java如何实现接月饼小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。主要设计设计游戏界面,用swing实现设计背景设计得分物体-月饼,碰到加一分设计障碍物-月亮,碰到会死亡监听鼠标...
      99+
      2023-06-29
    • Java实现接月饼小游戏的示例代码
      目录前言主要设计功能截图代码实现游戏启动类核心类画面绘制总结前言 《接月饼小游戏》是一个基于java的自制游戏,不要被月亮砸到,尽可能地多接月饼。 此小项目可用来巩固JAVA基础语法...
      99+
      2024-04-02
    • 基于python pygame实现的兔子吃月饼小游戏
      目录小游戏规则简介 实现 初始化游戏窗口 游戏逻辑 实现玩家类 实现月饼类 交互逻辑 总结中秋佳节就快来临,给各位大佬整个兔子吃月饼的小游戏助助兴,废话不多说,开整。 小游戏规则简介...
      99+
      2024-04-02
    • Java如何实现飞机小游戏
      这篇文章主要讲解了“Java如何实现飞机小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现飞机小游戏”吧!1,Constant;专门放常量package com....
      99+
      2023-07-01
    • Java如何实现潜艇小游戏
      本篇内容介绍了“Java如何实现潜艇小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先是主方法里定义的窗口(这些都是固定的格式,不会的...
      99+
      2023-06-29
    • Pygame改编飞机大战制作兔子接月饼游戏
      目录前言一、游戏效果展示二、游戏文件逻辑架构三、游戏主体代码结构四、游戏精灵代码结构五、游戏完整源代码前言 左思右想没有头绪时,刚好看到一篇介绍Pygame制作飞机大战的文章。文章写...
      99+
      2024-04-02
    • 如何使用Java实现扫雷小游戏
      这篇文章主要介绍“如何使用Java实现扫雷小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Java实现扫雷小游戏”文章能帮助大家解决问题。效果展示主类:GameWin类package&n...
      99+
      2023-06-30
    • java如何实现飞机大战小游戏
      本篇内容介绍了“java如何实现飞机大战小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyPanel类package &nb...
      99+
      2023-07-01
    • 基于JS如何实现接粽子小游戏
      这篇文章主要介绍“基于JS如何实现接粽子小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于JS如何实现接粽子小游戏”文章能帮助大家解决问题。游戏设计在游戏屏幕内,会随机的从顶部掉落粽子,通过鼠...
      99+
      2023-06-30
    • java实现弹球小游戏
      GUI实现弹球小游戏,供大家参考,具体内容如下 先看一下游戏效果图。 一个简单的Demo。也比较简单,新手试着做一做完善改进。 源代码 import Com.Style.Fo...
      99+
      2024-04-02
    • Java实现数独小游戏
      本文实例为大家分享了Java实现数独小游戏的具体代码,供大家参考,具体内容如下 题目要求: 制作一个数独游戏。数据游戏拼图由一个3*3的九宫格组成,每个格式又分成一个小九宫格,共九九...
      99+
      2024-04-02
    • Java实现飞机小游戏
      本文实例为大家分享了Java实现飞机小游戏的具体代码,供大家参考,具体内容如下 该小游戏使用java语言实现,使用工具idea。 共写9个类 Constant;Explode;Gam...
      99+
      2024-04-02
    • 如何使用java实现猜数字小游戏
      这篇文章给大家分享的是有关如何使用java实现猜数字小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。题目描述:猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪...
      99+
      2023-06-14
    • java如何实现简单贪吃蛇小游戏
      这篇文章给大家分享的是有关java如何实现简单贪吃蛇小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下有两个类,放在同一文件下下即可,背景图片,标题,蛇尾可自行更改import java....
      99+
      2023-06-15
    • Java如何实现双色球彩票小游戏
      这篇文章主要介绍了Java如何实现双色球彩票小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的...
      99+
      2023-06-14
    • 基于PythonPygame实现的画饼图游戏
      目录导入包配置基本参数根据输入的数字改变扇形的个数监听事件这个游戏就是实现键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。 导入包 导入随机包,pygame...
      99+
      2024-04-02
    • Java实现猜数字小游戏
      目录1. 开篇简介2. 需求简介3. 思路分析4. 步骤讲解5. 代码实现6. 如何更快猜到数字的方法总结1. 开篇简介 嗨,大家好!!!『』最近『马上』就要『过年』了,先祝大家『新...
      99+
      2024-04-02
    • Java实现三子棋小游戏
      # 前言 之前在学习C语言的时候,做过一个三子棋的小游戏,最近开始学习Java,就想着能不能用Java再把之前的练习重新实现一边,既然有这个想法了,那就开始行动啦~。 再写的过程中...
      99+
      2024-04-02
    • Java实现斗地主小游戏
      本文实例为大家分享了Java实现斗地主小游戏的具体代码,供大家参考,具体内容如下 原理图: 斗地主过程:  *  1、组合牌  * &nbs...
      99+
      2024-04-02
    • pygame实现滑块接小球游戏
      用pygame做一个滑块接小球的游戏,供大家参考,具体内容如下 先上图 游戏很简单也很弱智,主要用到了pygame画圆,画方块,随机数等,可以锻炼基本的鼠标控制,游戏设计思维,简单...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作