【Java经典游戏】-01-是男人就坚持30秒
hello!各位彦祖们!我们又见面了!!
今天兄弟我给大家带来了一款经典趣味小游戏的项目案例-是男人就坚持30秒
本项目案例涉及到的技术:
- Java 语法基础
- Java 面向对象
- JavaSwing 编程
- Java 线程
是一个非常适合小白来加强以及巩固学习,提升编程思想,以及逻辑思维的项目案例!
给个关注呗!且看且珍惜!(我感觉我飘了)
废话不多说,我们先上图!!
首先看看启动页面:

各位彦祖的身材一定就是这么完美,有空发个图过来我欣赏一下!!O(∩_∩)O哈哈~
接下来我们来看看游戏页面(声明:无不良引导,只是皮一下)
从下图来看,应该看出了我的不容易和艰辛了吧!!这不奖励我一个关注和赞?马赛克加涂鸦,这回应该能过审了吧!!
┭┮﹏┭┮ 福利没有了~~~

接下来就开始挑战了,怕过不了审,图片设置的比较小,也比较保守,彦祖们获取到源码之后,可以敞开来玩

接下来就需要各位万花丛中过,片叶不沾身了!!兄弟们要坐怀不乱,坚持到 30 秒

如果你能坚持 30 秒不碰任何美女,你就可以过关,进入到下一关,下一关美女会变的更多,移动速度会更快

但是假设你没忍住,碰到了美女,那么游戏就会结束,会受到美女无情的嘲讽

好了!我们进入正题吧,接下来我们来看看代码,这款游戏首先我们需要的是创建游戏窗体,代码如下:
package ui;import javax.swing.JFrame;public class GameFrame extends JFrame{public GameFrame() {setTitle("是男人就坚持30秒");setSize(App.FRAME_WIDTH,App.FRAME_HEIGHT);setLocationRelativeTo(null);setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {WelcomeFrame frame = new WelcomeFrame();WelcomePanel panel = new WelcomePanel(frame);panel.action();// GameFrame frame = new GameFrame();// GamePanel panel = new GamePanel();// panel.action();frame.add(panel);frame.setVisible(true);}}
然后就是创建面板代码:
package ui;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;import javax.naming.ldap.StartTlsRequest;
import javax.swing.JPanel;public class GamePanel extends JPanel{List<Circle> cs = new ArrayList<Circle>();int level = 1;Rect rect = new Rect();Random rd = new Random();Timer levelTimer ;Timer timer ;boolean gameover = false;boolean levelShow = true;boolean gameStart = false;int second = 0;int sleep = App.START_SLEEP_TIME;int daoTime = App.DAO_TIME;boolean showDao = false;int circleNum = App.START_CIRCLE_NUM;BufferedImage bg;BufferedImage showImg;BufferedImage overImg;public GamePanel() {showImg = ImageUtil.getImg("/img/vectory.jpg");overImg = ImageUtil.getImg("/img/loser.jpg");bg = ImageUtil.getImg("/img/bg.jpg");setBackground(Color.BLACK);startTimer();for(int i=0;i<circleNum;i++){Circle c = new Circle();cs.add(c);}}public void startTimer(){levelTimer = new Timer();timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {if(gameStart){second++;if(second%30==0&&second!=0){goNextLevel();}}repaint();}}, 0,1000);levelTimer.schedule(new TimerTask() {@Overridepublic void run() {levelShow = false;showDao = true;levelTimer.cancel();repaint();Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {daoTime --;if(daoTime==0){timer.cancel();showDao = false;gameStart = true;repaint();}}}, 0,1000);}}, 2000);}protected void goNextLevel() {cs.clear();rect = new Rect();levelShow = true;gameStart = false;level ++;timer.cancel();levelTimer.cancel();addCicle();sleep -= 10;daoTime = App.DAO_TIME;startTimer();}protected void addCicle() {circleNum += cs.size()+5;for(int i=0;i<circleNum;i++){Circle c = new Circle();cs.add(c);}}@Overridepublic void paint(Graphics g) {super.paint(g);//g.drawImage(bg, 0, 0,App.FRAME_WIDTH,App.FRAME_HEIGHT, null);if(showDao||gameStart){for(int i=0;i<cs.size();i++){Circle c = cs.get(i);//g.setColor(new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255)));g.setColor(c.color);//g.fillOval(c.x, c.y, c.w, c.h);g.drawImage(c.img, c.x, c.y,c.w,c.h, null);}g.drawImage(rect.img, rect.x, rect.y,rect.w, rect.h,null);g.setColor(Color.green);g.setFont(new Font("楷体",Font.BOLD,30));g.drawString("骚年你已经坚持"+second+"秒", 10, 30);}if(levelShow){g.setColor(new Color(rd.nextInt(255),rd.nextInt(255),rd.nextInt(255)));g.setFont(new Font("楷体",Font.BOLD,50));g.drawString("第"+(level)+"关", 480, 200);g.setColor(Color.yellow);g.drawString("准备好哦", 480, 300);g.drawString("美女们速度会越来越快", 480, 400);g.drawImage(showImg, 0, 0,450,768, null);}if(gameover){g.drawImage(overImg, 0, 0, 450, 768,null);g.setColor(Color.red);g.setFont(new Font("楷体",Font.BOLD,50));g.drawString("游戏结束了", 480, 200);g.drawString("你坚持了"+second+"秒", 480, 300);g.setFont(new Font("楷体",Font.BOLD,30));if(second<60){g.drawString("你还是个弟弟哇~~多锻炼身体", 480, 400);}else{g.drawString("小哥哥你真棒", 480, 400);}}if(showDao){//g.drawImage(showImg, 0, 0,450,768, null);g.setColor(Color.yellow);g.setFont(new Font("楷体",Font.BOLD,50));g.drawString("请准备:"+daoTime+"", 400, 250);}}public void action(){MouseAdapter adapter = new MouseAdapter(){@Overridepublic void mouseMoved(MouseEvent e) {int mx = e.getX();int my = e.getY();if(gameStart&&!gameover){rect.move(mx,my);}repaint();}};addMouseMotionListener(adapter);addMouseListener(adapter);new Thread(){public void run(){while(true){if(gameStart&&!gameover){circleMove();checkBouns();}try {Thread.sleep(sleep);repaint();} catch (InterruptedException e) {e.printStackTrace();} }}}.start();}/*** */protected void checkBouns() {for(int i=0;i<cs.size();i++){Circle c = cs.get(i);if(rect.hitBy(c)){gameover = true;gameStart = false;cs.clear();levelTimer.cancel();timer.cancel();}}}protected void circleMove() {for (int i = 0; i < cs.size(); i++) {Circle c = cs.get(i);c.move();}}}
完整源码下载地址:
https://download.csdn.net/download/yueyehuguang/89770991?spm=1001.2014.3001.5503
什么?没有下载积分?那也简单!
先关注我,然后后台私信我!我给你发,这样总行吧!!
O(∩_∩)O哈哈~,就酱!我们下期见
相关文章:
【Java经典游戏】-01-是男人就坚持30秒
hello!各位彦祖们!我们又见面了!! 今天兄弟我给大家带来了一款经典趣味小游戏的项目案例-是男人就坚持30秒 本项目案例涉及到的技术: Java 语法基础Java 面向对象JavaSwing 编程Java 线程 是一个非常适合小白来加强…...
微调框QSpinBox
作用:允许用户按照一定的步长,来增加或减少其中显示的数值 有两种类型的微调框 QSpinBox - 用于整数的显示和输入QDoubleSpinBox - 用于浮点数的显示和输入 值 包括最大值、最小值、当前值 // 获取和设置当前值 int value() const void setValue(in…...
在线查看 Android 系统源代码 AOSPXRef and AndroidXRef
在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…...
JavaScript substr() 方法
定义和用法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 <script type"text/javascript">var str"Hello world!" document.write(str.substr(3))</script>lo world!<script type"text/javascript">v…...
教你把图片转换为炫酷的翻页电子杂志
翻页电子杂志以其炫酷的视觉效果和便捷的阅读方式,受到了许多用户的喜爱。想要把普通的图片转换成这样的效果,其实并不复杂。下面,就让我来为您介绍一下如何操作。 首先,您需要准备一些基本的工具和材料。您需要一个图像编辑软件…...
生信软件35 - AI代码编辑器Cursor
1. Cursor - AI代码编辑器 Cursor的核心功能是利用生成式AI,帮助程序员通过自然语言描述快速生成代码。让程序员未来需要关注的是“做什么”(What)而不是“怎么做”(How),即在使用AI生成代码的基础上&…...
Vue Router 编程式导航全攻略:深入掌握 push, replace, go, back, forward,beforeEach 方法
Vue Router 编程式导航全攻略:深入掌握 push, replace, go, back, forward,beforeEach 方法 在Vue Router中,编程式导航是一种通过JavaScript代码来实现路由跳转的方法。与声明式导航(使用<router-link>标签)相比ÿ…...
切换淘宝最新镜像源:优化NPM包管理的极致体验
在NPM生态系统中,快速、安全地获取所需的包是每个前端工程师追求的目标。然而,由于不同地区的网络环境,直接通过官方NPM仓库获取包可能会导致下载速度缓慢、超时等问题。针对这些情况,淘宝团队提供了优秀的NPM镜像源,并且定期更新。本文将详尽介绍如何切换淘宝最新镜像源,…...
react 基础语法
前置知识 类的回顾 通过class关键字定义一个类 类名首字母大写 class类有constructor构造器 new 一个类得到一个实例 类还有方法,该方法也会在其原型上 static静态数据,访问静态属性通过 类名.id getter和setter getter:定义一个属性&…...
k8s的NodeIP、PodIP、ClusterIP、ExternalIP
1.NodeIP K8s集群由Master Node与Worker Node组成。 Node:组成k8s集群的机器,可以是物理机或虚拟机。 Master Node :管理节点也叫控制平面主要负责管理控制方面。 Worker Node::工作节点用于部署处理业务的工作负载或p…...
【vue element-ui】关于删除按钮的提示框,可一键复制
实现效果: Delete: function (id) {this.$confirm(此操作将永久删除该文件, 是否继续?, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning,center: true,}).then(() > {Delete(id).then(() > {this.$message({type: success,message: 删…...
内部工具使用
1. displaytool 开发的渲染工具,如将车端建图结果显示在渲染窗口中,便于查bug 2. localization / csmap 开发的定位工具 和 车端建图工具 3. bolepack 第三方,处理感知数据的工具 运行流程:1-> 2 -> 3 bol…...
Spring Boot-静态资源管理问题
在Spring Boot中,静态资源管理是构建现代Web应用程序时必不可少的一部分。无论是处理静态页面、图片、CSS、JavaScript文件,还是一些自定义文件,正确管理这些资源能够提升用户体验和优化应用的性能。 1. Spring Boot中的静态资源管理概述 S…...
白酒与商务宴请:如何成为餐桌上的受宠者之一?
在商务宴请的场合中,白酒往往是餐桌上不可或缺的佳酿。一瓶好的白酒,不仅能够彰显主人的品味,还能为宾客带来愉悦的享受。那么,在商务宴请中,如何选择一瓶合适的白酒,让自己成为餐桌上的受宠者之一呢&#…...
【C语言零基础入门篇 - 9】:文件操作
文章目录 文件操作文件的简介指向指针的文件文件的打开方式字符的读取和存储数据的读取和存储 文件操作 文件的简介 一、什么是文件? 文件有不同的类型,主要有两种文件: (1)程序文件。(2)数据…...
链式二叉树的基本操作(C语言版)
目录 1.二叉树的定义 2.创建二叉树 3.递归遍历二叉树 1)前序遍历 2)中序遍历 3)后序遍历 4.层序遍历 5.计算节点个数 6.计算叶子节点个数 7.计算第K层节点个数 8.计算树的最大深度 9.查找值为x的节点 10.二叉树的销毁 从二叉树…...
Tcp三次握手四次挥手和SSL/TLS
1.Tcp三次握手四次挥手: 1.1基本概念: TCP(三次握手和四次挥手)是用于建立和终止可靠传输连接的过程。TCP协议是一种面向连接的传输层协议,确保数据在网络上可靠、有序地传输。下面详细解释三次握手和四次挥手的工作机…...
大棚分割数据集,40765对影像,16.9g数据量,0.8米高分二,纯手工标注(arcgis标注)的大规模农业大棚分割数据集。
数据集名称: )“Greenhouse Segmentation Dataset (GSD)” 数据集规模: 包含40,765对用于大棚分割的影像数据,每对影像包括一张原始图像和相应的分割标签图。 数据量: 总数据量约为16.9GB,适合存储在现…...
Jenkins插件安装失败时这么做就搞定啦!
1.网络或墙的问题导致插件下载安装失败 这种错误提示很明显,就是无法连接到插件下载地址,导致插件下载失败。 解决方法 为Jenkins更换源 点击Jenkins主页面左侧列表中【系统管理】—— 下拉找到【管理插件】 选择【高级】选项卡 替换最下方【升级站点…...
优化器与现有网络模型的修改
文章目录 一、优化器是什么二、优化器的使用三、分类模型VGG16四、现有网络模型的修改 一、优化器是什么 优化器(Optimizer)是一个算法,用于在训练过程中调整模型的参数,以便最小化损失函数(Loss Function)…...
Godot PCK解包原理与专业逆向实践指南
1. 这不是“解压软件”,而是Godot游戏逆向工程的第一把手术刀你刚下载了一款用Godot引擎开发的独立游戏,想研究它的UI动效逻辑,或者复刻一段粒子特效,又或者只是单纯好奇——那个让你反复通关三次的像素风过场动画,图层…...
DIY复刻经典:Texar Audio Prism动态处理器克隆套件全攻略
1. 项目概述:Texar Audio Prism 克隆套件如果你在专业音频圈子里混过一段时间,尤其是对上世纪八九十年代那些经典的、带点“魔法”色彩的外置动态处理器感兴趣,那么“Texar Audio Prism”这个名字你大概率不会陌生。它不是最常见的1176或者LA…...
量子软件测试的挑战与优化策略
1. 量子软件测试的挑战与机遇量子计算正在从实验室走向实际应用,随之而来的是对可靠量子软件的需求激增。与传统软件不同,量子程序面临三大独特挑战:首先,量子态的叠加性和纠缠性使得测试变得异常复杂。一个n量子比特系统可以同时…...
孤舟笔记 互联网常用框架篇二 Dubbo服务请求失败怎么处理?集群容错策略你用过几种
文章目录先说结论Failover:换家店试试Failfast:不行就算了Failsafe:忘了这事Failback:回头再说Forking:同时点几家Broadcast:通知所有人怎么选择回答技巧与点评加分回答面试官点评个人网站分布式系统中&…...
别再只用鼠标了!用Leap Motion手势控制Unity游戏,保姆级配置避坑指南(2024版)
2024年Unity手势交互开发实战:Leap Motion从配置到游戏逻辑全解析在游戏开发领域,交互方式的创新往往能带来全新的体验。想象一下,玩家不再需要键盘鼠标,仅凭自然的手部动作就能操控游戏角色——这正是Leap Motion手势识别技术为U…...
ubuntu环境下为python项目配置taotoken多模型api密钥与端点
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Ubuntu环境下为Python项目配置Taotoken多模型API密钥与端点 1. 准备工作 在Ubuntu系统上为Python项目接入Taotoken,首…...
5分钟掌握AutoClicker:Windows鼠标点击自动化的终极指南
5分钟掌握AutoClicker:Windows鼠标点击自动化的终极指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker AutoClicker是一款专为Windows设计的鼠…...
还在古法编程?OpenAI Codex 全自动编程!稳定中转 Token 保姆级教程
OpenAI Codex 从安装到进阶实战|终端 AI 编程完全指南(2026 最新) 摘要:OpenAI Codex 是目前最强大的终端 AI 编程工具,支持代码生成、项目重构、Bug 修复、脚本自动化、批量代码优化等全场景能力。本文从零起步&…...
如何永久保存微信聊天记录?WeChatMsg数据导出完整指南
如何永久保存微信聊天记录?WeChatMsg数据导出完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...
机器学习势函数预测体弹性模量:FCC与HCP结构基准测试与选型指南
1. 项目概述:为什么我们需要关注机器学习势函数对体弹性模量的预测?在材料研发的第一线,无论是设计下一代航空发动机的高温合金,还是开发用于固态电池的新型固态电解质,一个绕不开的核心力学参数就是体弹性模量。你可以…...
