GUI实现弹球小游戏

先看一下游戏效果图。


一个简单的Demo。也比较简单,新手试着做一做完善改进。
源代码

import Com.Style.FontStyle;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*** @Author: 冀十三* @DescIption: 弹球小游戏* @Date:2021--06--10--17:08*/
public class Demo  extends JFrame {//创建游戏窗口public Demo() {init();}//桌面大小private final int TABLE_WIDTH = 450;private final int TABLE_HEIGHT = 600;//球大小private final int BALL_SIZE = 15;//球拍大小private final int RACKET_WIDTH = 120;private final int RACKET_HEIGHT = 20;//记录小球坐标private double BallX = 100;private double BallY = 200;//记录球拍坐标private double RACKET_X = 150;private final double RACKET_Y = 380;//记录小球速度private double speedX = 10;private double speedY = 20;//记录游戏是否结束private boolean isOver = false;//声明一个积分器int score= 0;//声明一个计时器。ActionListener run = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//更新小球坐标让小球动起来BallY+=speedY;BallX+=speedX;//重绘界面mycanvas.repaint();//碰到两边的时候if (BallX<=0||BallX>=TABLE_WIDTH-BALL_SIZE){speedX=-speedX;}//碰到上边界的时候if(BallY<=0){speedY=-speedY;}//接住小球的时候if ( BallY>=(RACKET_Y-BALL_SIZE)&&BallX>RACKET_X&&BallX<(RACKET_X+RACKET_WIDTH)){//得10分score+=10;speedY=-speedY;}if ((BallY>(RACKET_Y-BALL_SIZE)&&(BallX<RACKET_X||BallX>RACKET_X+RACKET_WIDTH))){timer.stop();isOver=true;mycanvas.repaint();}}};private Timer timer = new Timer(60, run);//内部类继承Canvas充当画布private class myCanvas extends Canvas {public void paint(Graphics g) {//绘制内容//如果游戏结束if (isOver) {//给画笔颜色g.setColor(new Color(0xFF9A1B44, true));//给画笔字体g.setFont(new Font("宋体", FontStyle.BOLD, 25));g.drawString("Game Over!", 120, TABLE_HEIGHT / 4);g.drawString("成绩"+score+"分", 120, TABLE_HEIGHT / 3);g.drawString("按空格再来一次", 120, TABLE_HEIGHT / 2);} else {//否则游戏中//绘制小球g.setColor(new Color(0xFF09FAA6, true));g.fillOval((int) BallX, (int) BallY, BALL_SIZE, BALL_SIZE);//画一个积分系统//上色g.setColor(new Color(0xE8DC0C77,true));//给画笔字体g.setFont(new Font("宋体", FontStyle.BOLD, 25));g.drawString("得分:"+score, 25, 25);//绘制球拍g.setColor(new Color(0xFF0E51D7, true));g.fillRect((int) RACKET_X, (int) RACKET_Y, RACKET_WIDTH, RACKET_HEIGHT);timer.start();}}}//创建绘画区myCanvas mycanvas = new myCanvas();//窗口初始化public void init() {JFrame jFrame = new JFrame();jFrame.setTitle("弹球小游戏");//窗口名称jFrame.pack();//自适应布局jFrame.setVisible(true);//可见jFrame.add(mycanvas);jFrame.setBounds(500, 200, TABLE_WIDTH, TABLE_HEIGHT);jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//关闭mycanvas.setPreferredSize(new Dimension(TABLE_WIDTH, TABLE_HEIGHT));//画布大小jFrame.setResizable(false);//大小不可变KeyListener keyListener = new KeyAdapter() {//重写键盘被按压的方法@Overridepublic void keyPressed(KeyEvent e) {//接收按下的是哪个键int key = e.getKeyCode();if (key == KeyEvent.VK_LEFT) {if (RACKET_X >0) {RACKET_X -= 30;}}if (key == KeyEvent.VK_RIGHT) {if (RACKET_X < (TABLE_WIDTH - RACKET_WIDTH )) {RACKET_X += 30;}}if (key == KeyEvent.VK_SPACE) {if (isOver=true) {Demo.main(null);}}}};//窗口获取键盘监听jFrame.addKeyListener(keyListener);//键盘获取键盘监听mycanvas.addKeyListener(keyListener);}public static void main(String[] args) {new Demo();}
}

感谢到访!

弹球小游戏附全源代码相关推荐

  1. 弹球小游戏java代码_android 发射弹球小游戏 附完整源码下载

    [实例简介]android 弹球游戏制作 [实例截图]  [核心代码] package wyf.ytl; //声明包语句 public class BallGoThread extends Threa ...

  2. python弹球小游戏程序设计_Python写的弹球小游戏

    原标题:Python写的弹球小游戏 Python 的功能强大应用广泛,从爬虫到 Web 开发,从科学计算到人工智能,都能见到它的身影.当然,Python 还可以编写游戏代码,虽然不是主流,但却十分有趣 ...

  3. python画圆形螺旋线_Python写的弹球小游戏

    Python 的功能强大应用广泛,从爬虫到 Web 开发,从科学计算到人工智能,都能见到它的身影.当然,Python 还可以编写游戏代码,虽然不是主流,但却十分有趣,既能提升代码能力,又能自娱自乐.敲 ...

  4. 大一下期末javaGUI课设之swing+MYSQL实现“弹珠传说”弹球小游戏

    目录 一.游戏概述 二.需求分析 三.运行环境 四.详细设计 1.游戏初始化界面 2.单人闯关模式的设计 3.双人合作模式 4.数据库连接与操作 5.数据库连接,排行榜 五.总结 说明 该课设一共分成 ...

  5. [python] 写个既有趣又可爱的弹球小游戏

    用python写一个既有趣有可爱的弹球小游戏 这几天闲着无聊,就在家写着游戏玩一玩,发现一个这样有趣的小游戏,我通过pygame把它先做了出来,话不多少先上代码. 首先先导入包,导包是必不可少的一件事 ...

  6. html实现扫雷小游戏(附源码)

    文章目录 实现功能 1.扫雷设计 1.1 主界面 1.2 扫雷难度 1.3 附带功能 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blo ...

  7. python小游戏编程实例-Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw ...

  8. python弹球小游戏程序_Python基于Tkinter模块实现的弹球小游戏

    本文实例讲述了Python基于Tkinter模块实现的弹球小游戏.分享给大家供大家参考,具体如下: #!usr/bin/python #-*- coding:utf-8 -*- from Tkinte ...

  9. python两人一碰_python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

最新文章

  1. centos下tomcat6.0.28配置
  2. BCH DEVCON 黑客马拉松即将登陆旧金山!
  3. java数据结构教程_Java数据结构
  4. ECMAScript+DOM+BOM
  5. MFC中的控件是怎么实现的呢?一个按钮就是一个窗口?还是所有按钮画在一个分层窗口上再叠
  6. python renamer模块_【免费工具集】4种免费Maya Python脚本集合:重命名、检查UV、分配重叠模型、选边,尽在EL Tool Pack...
  7. 查看WEB服务器的连接数
  8. java中调用System.currentTimeMillis()获取当前时间来求出时间差及程序执行的时间
  9. directx修复工具v3.2增强版_微PE v2.0维护盘增强版万能启动盘20200726
  10. 05-雷海林-mysql备份原理与在TDSQL中的实践
  11. redis缓存跟数据库数据不一致问题解决
  12. 2016 ICPC 大连网络赛 部分题解
  13. 面向对象组件开发一个弹窗
  14. 中国雅虎殒身记:当初说好的独立上市呢?
  15. 飞秋等级授权码_观点 | 谈谈网络安全等级保护与密码法
  16. 2018逻辑思维跨年演讲之《时间的朋友》总结
  17. 出现这种情况是什么原因呢?
  18. 保存windows10微软聚焦的锁屏壁纸
  19. linux已经读写次数ssd剩余,固态硬盘ssd写入量剩余读写次数怎样查
  20. 校园招聘之Offer、三方协议、两方协议、劳动合同都是什么?怎样避免被坑?...

热门文章

  1. 朋友圈热荐:互联网老二逆袭的6大法宝
  2. JHipster | 02.编写JDL文件创建JHipster项目
  3. JHipster翻译资料(1)[原创翻译]JHipster Domain Language (JDL)
  4. python使用Yolov3实现电子围栏功能,检测目标是否进入指定区域
  5. Android Studio实现简单的音乐播放(播放、暂停、停止、上一首、下一首)
  6. 单片机毕设选题 Stm32便携心率体温检测仪 - 嵌入式 物联网
  7. 南京师范大学计算机技术研究生就业,发布 | 南京师范大学2018届硕博毕业生就业质量报告...
  8. kali卸载firefox_Kali更新安装firefox教程
  9. CGB2009-京淘项目day03
  10. Python+OpenCV实现车道线检测代码部分