Java Swing的打砖块游戏 完整源码 下载直接运行

今天为大家分享打砖块游戏的开发与制作,目前系统已经开发完成,界面漂亮,游戏的过程有小球碰撞的声音,有比较真实碰撞的感觉。整个系统界面漂亮,支持源码导入,也支持打包JAR直接运行该游戏。

本项目希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步!!!

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。选中Main.java,点右键 run as application启动相关程序。也客户把程序打包成JAR包,双击JAR即可以启动相关的程序。

1 游戏场景

打砖块游戏有三种场景:砖块、小球、面板。

砖块:8*3 ,一个24块,弹球击中砖块,砖块消失,并且发出相关的声音

小球:通过键盘的,方向键中的上(up)开始游戏

面板:小球通过面板反弹来反复打击砖块。如果小球没有集中砖块,游戏直接结束

2 游戏规则

小球通过面板反弹来反复打击砖块。如果小球没有集中砖块,游戏直接结束。小球发射后,通过移动面板来使得小球多次击中砖块来完成砖块的消失。消失的砖块越多,则得分越高。要想得高分,需要提前预判小球得反弹轨迹。

运行效果

1 开始游戏

2 小球和砖块碰撞

3 游戏结束

关键代码

public class ExplodeObject extends GameObject{
    private Random random = new Random();
    private final int DEFAULT_RADIUS = 30;// 初始半径
    private final int DEFAULT_COUNT = 25;// 初始粒子个数
    private java.util.List<Particle> list = new ArrayList<>();
    private int frames = 0;

    public ExplodeObject(){
        for (int i = 0; i < DEFAULT_COUNT; i++) {
            Particle p = new Particle(x, y, random.nextInt(3) + 2);
            p.setSpeed(random.nextInt(3) + 2);
            p.setNewRate(0.1);
            list.add(p);
        }
    }

    @Override
    public void draw(Graphics g) {
        g.setColor(getColor());
        for (int i = 0; i < list.size(); i++) {
            Particle p = list.get(i);
            g.fillOval(p.x, p.y, p.radius * 2, p.radius * 2);
        }
    }

    @Override
    public void onTick() {
        frames++;
        for (int i = 0; i < list.size(); i++) {
            Particle p = list.get(i);
            double temp = DEFAULT_RADIUS * p.getNewRate();
            double angle = (2 * Math.PI / DEFAULT_COUNT)*i;
            p.x = x+getWidth()/2+(int) Math.round(temp*Math.sin(angle));
            p.y = y+getHeight()/2+(int) Math.round(temp * Math.cos(angle));
            //p.radius= (int) Math.round(p.radius*0.8);
            //System.out.println(String.format("p.x:%d, p.y:%d, p.radius:%d", p.x,p.y,p.radius));
            p.setNewRate(p.getNewRate() + 0.05*p.getSpeed());
        }
        if (frames > 30)// 只需要绘制30帧(hard code)
            setGone(true);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值