Java GUI实现桌球小游戏

桌球游戏是一种室内运动,通常在一个正式的桌球台上进行。这种游戏也被称为台球或母球。桌球游戏的目标是使用一个击球杆将彩球击入桌面四个角落的袋子中,得分最高的一方获胜。桌球游戏需要一定的技巧和策略,因此是一项受欢迎的竞技运动和休闲娱乐活动。

以下是一个简单的桌球小游戏的Java代码实现示例:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;public class DeskBallGame extends JPanel implements ActionListener {private static final long serialVersionUID = 1L;private int ballX = 200;private int ballY = 200;private int ballWidth = 30;private int ballHeight = 30;private int ballSpeedX = -2;private int ballSpeedY = -3;private int tableWidth = 400;private int tableHeight = 300;private int paddleX = 0;private int paddleY = 250;private int paddleWidth = 60;private int paddleHeight = 10;private Timer timer;public DeskBallGame() {timer = new Timer(5, this);timer.start();}public void paint(Graphics g) {super.paint(g);g.setColor(Color.BLUE);g.fillOval(ballX, ballY, ballWidth, ballHeight);g.setColor(Color.RED);g.fillRect(paddleX, paddleY, paddleWidth, paddleHeight);g.setColor(Color.BLACK);g.drawRect(0, 0, tableWidth, tableHeight);}public void actionPerformed(ActionEvent e) {ballX += ballSpeedX;ballY += ballSpeedY;if (ballX < 0 || ballX > tableWidth - ballWidth) {ballSpeedX = -ballSpeedX;}if (ballY < 0 || ballY > tableHeight - ballHeight) {ballSpeedY = -ballSpeedY;}if (ballY + ballHeight >= paddleY && ballX + ballWidth >= paddleX&& ballX <= paddleX + paddleWidth) {ballSpeedY = -ballSpeedY;}repaint();}public static void main(String[] args) {JFrame frame = new JFrame("Desk Ball Game");DeskBallGame deskBallGame = new DeskBallGame();frame.add(deskBallGame);frame.setSize(deskBallGame.tableWidth, deskBallGame.tableHeight);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
}

这个代码实现了一个带有桌子、球和球拍的桌球小游戏。在窗口中,当球碰到桌子边界时,它将反弹。当球与球拍相撞时,它也将反弹。

要运行这个程序,只需将代码复制到Java开发环境中,并运行主方法。这将打开一个窗口,其中包含一个可移动的球和球拍,您可以使用箭头键移动球拍以避免让球落下。

效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成对抗网络Generative Adversarial Network,GAN

Basic Idea of GAN Generation&#xff08;生成器&#xff09;  Generation是一个neural network&#xff0c;它的输入是一个vector&#xff0c;它的输出是一个更高维的vector&#xff0c;以图片生成为例&#xff0c;输出就是一张图片&#xff0c;其中每个维度的值代表生…

前端环境变量释义

视频教程 彻底搞懂前端环境变量使用和原理&#xff0c;超清楚_哔哩哔哩_bilibili 添加命令行参数 --modexxxxx 新建.env.xxxx文件,其中.env文件会在所有环境下生效 以VITE_开头&#xff0c;字符串无需加双引号 使用import.meta.env.VITE_xxxxx进行调用

React中封装echarts图表组件以及自适应窗口变化

文章目录 前言环境代码接口使用效果后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0c;…

很多人都在用的现货白银突破交易法 缺点需要注意

突破交易是现货白银投资者常用的交易技巧。通常做突破交易有两种方法&#xff0c;一种是突破发生的时候马上入场&#xff0c;另一种是在突破确认后等待回调然后再入场。目前&#xff0c;投资者较多的是使用后者。用突破——回踩入场有什么优缺点呢&#xff1f;下面我们就来讨论…

Java(四)(多态,final,常量,抽象类,接口)

目录 多态 基本概念: 使用多态的好处 类型转换 遇到的问题 解决方法 强制类型转换的一个注意事项 final 常量 抽象类 啥是个抽象类? 抽象类的注意事项,特点 抽象类的场景和好处 抽象类的常见应用场景: 模板方法设计模式 接口 基本概念 接口的好处 JDK8开始,接…

[计算机网络实验]头歌 实验二 以太网帧、IP报文分析

第1关&#xff1a;Wireshark基本使用入门 【实验目的】 1、掌握wireshark工具的基本使用方法 【实验环境】 1、头歌基于Linux的虚拟机桌面系统 2、网络报文分析工具wireshark 3、浏览器firefox 【本地主机、平台虚拟机之间数据传递】 1、文本的复制与粘贴 操作入口&…

半导体业库存问题缓解,明年迎来良好转机 | 百能云芯

随着全球半导体产业今年产值预计将出现逾1成的衰退&#xff0c;市场一度陷入不确定性。然而&#xff0c;半导体厂商们对于供应链库存的有效去化表示乐观&#xff0c;预计将为明年带来健康的复苏。在各种因素交织的复杂情况下&#xff0c;半导体产业展现出逐步解决库存问题、迎来…

vivado产生报告阅读分析14-时序报告10

Vivado IDE 中的例外报告 “ Report Exceptions ”对话框 在 AMD Vivado ™ IDE 中 &#xff0c; 选择“ Reports ” → “ Timing ” → “ Report Exceptions ” &#xff08; 报告 > 时序 > 例外报告 &#xff09; 即可打开“Report Exceptions ”对话框。 从“…

第三届VECCTF-2023 Web方向部分wp

拳拳组合 题目描述&#xff1a;明喜欢保存密钥在某个文件上。请找到秘钥并读取flag文件。 开题&#xff0c;点不完的。源码提示&#xff1a; <!--据说小明很喜欢10的幂次方--> 扫一下看看&#xff0c;应该是有git泄露。 其它一些路由没什么用 git泄露拿下一堆码 pytho…

给卖家的 5 个 TikTok 联盟营销创意

了解如何开始 TikTok 联盟营销不足以让您为 TikTok 商店实施最佳联盟计划。促进您的 TikTok 联盟营销工作。如下&#xff1a; 建立相关受众 为了确保您在 TikTok 联盟营销上的投资没有白费&#xff0c;清楚地了解您的目标受众至关重要。只有了解了这个平台的目标受众&#xf…

最全面的SHEIN开店流程,手把手教你从零起步,轻松开店!

SHEIN作为一家全球性的时尚电商平台&#xff0c;为年轻人提供了更多时尚选择和机会&#xff0c;同时也吸引了众多跨境电商卖家的关注。在5月份&#xff0c;SHEIN推出了第三方卖家平台&#xff0c;为卖家提供了全新的商机和发展赛道。毕竟目前SHEIN平台的流量是非常大的&#xf…

第2章 传输网

文章目录 2.1 传输网概述2.2 SDH传输网2.2.2 SDH的基本网络单元1、终端复用器&#xff08;TM&#xff09;2、分插复用器&#xff08;ADM&#xff09;3、再生中继器&#xff08;REG&#xff09;4、数字交叉连接设备&#xff08;DXC设备&#xff09; 2.2.3 SDH的帧结构2.2.4 …

VSCode新建Vue项目

前言 Vue.js 是一款流行的 JavaScript 前端框架&#xff0c;它可以帮助开发者轻松构建高性能、可扩展的 Web 应用程序。而 VSCode 则是一款功能强大的开源代码编辑器&#xff0c;它提供了许多有用的工具和插件&#xff0c;可以大幅提高开发效率。 在本文中&#xff0c;我们将…

UE4 基础篇十四:自定义插件

文末有视频地址和git地址 一、概念 虚幻里插件都是用C++写的,C++包括.h文件和.cpp文件,.h头文件通常包含函数类型和函数声明,cpp文件包含这些类型和函数的实现, 你为项目编写的所有代码文件都必须位于模块中,模块就是硬盘里的一个文件夹,包含名为“Build.cs”的C#文件…

vue实现el-menu与el-tabs联动

效果图如下&#xff1a; 当标签栏很多的时候效果图如下&#xff1a; 左侧菜单布局 &#xff08;$route.path高亮显示激活路由 :default-active"$route.path"&#xff09; <el-menu:default-active"$route.path"class"el-menu-vertical-demo"b…

PaaS、 IaaS 和 SaaS 的区别

我感觉我有点捂了 iaas&#xff0c;paas&#xff0c;和saas的区别&#xff0c;以及他们啥意思了 简单说就是&#xff0c;一个公司有很多项目&#xff0c;要管理这些项目&#xff0c;每个项目都有很多组成部分需要管理的地方&#xff0c;例如&#xff0c;存储代码&#xff0c;例…

掌握5个关键点,搞定语音识别测试!

现在市面上的智能电子产品千千万&#xff0c;为了达到人们使用更加方便的目的&#xff0c;很多智能产品都开发了语音识别功能&#xff0c;用来语音唤醒进行交互&#xff1b; 另外&#xff0c;各大公司也开发出来了各种智能语音机器人&#xff0c;比如小米公司的“小爱”&#…

UE5 操作WebSocket

插件&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/websocket-client 参考&#xff1a;http://dascad.net/html/websocket/bp_index.html 1. 安装Plugings 2.测试websocket服务器 http://www.websocket-test.com/ 3.连接服务器 如果在Level BP里使用&a…

4-11 四个数排序

#include<stdio.h> int main(){int t,a,b,c,d;printf("请输入四个数&#xff1a;");scanf("%d %d %d %d",&a,&b,&c,&d);printf("a%d,b%d,c%d,d%d\n",a,b,c,d);if(a>b){ta;ab;bt;}if(a>c){ta;ac;ct;}if(a>d){ta;a…