package com.Get.Game;
import com.Get.Obj.*;
import com.Get.User.User;
import com.Get.utils.Musicutils;
import com.Get.utils.MybatisUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class GameWin extends JFrame {
//0未开始 1 运行中 2 商店 3 失败 4 胜利
static int state;
//存储金块,石块
List<Obj> objList = new ArrayList();
//存储id防止重复
List<Integer> ids=new ArrayList<>();
User user=new User();
Bg bg = new Bg();
Line line = new Line(this);
//代码块初始化金块
{
//是否可以放置
boolean isPlace = true;
for (int i = 0; i < 11; i++) {
double random =Math.random();
Gold gold;//存放当前生成的金块
if(random<0.3){
gold = new GoldMini();
}else if(random<0.7){
gold = new Gold();
}else{
gold = new GoldPlus();
}
for(Obj obj: objList){
if(gold.getRec().intersects(obj.getRec())){
//不可放置,需要重新生成
isPlace=false;
}
}
if(isPlace){
objList.add(gold);}
else {
isPlace=true;
i--;
}
}
for (int i = 0; i < 5; i++) {
Rock rock=new Rock();
for(Obj obj: objList){
if(rock.getRec().intersects (obj.getRec())) {
isPlace=false;
}
}
if(isPlace){
objList.add(rock);
}else{
isPlace=true;
i--;
}
}
}
//缓存画布
Image offScreenImage;
//窗口设置
void launch(){
this.setVisible(true);
this.setSize(768,1000);
this.setLocationRelativeTo(null);
this.setTitle("黄金矿工");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
switch (state){
case 0:
if(e.getButton()==3){
state=1;
bg.startTime = System.currentTimeMillis();
}
break;
case 1:
//左右摇摆,点击左键
if(e.getButton()==1&&line.state==0){
line.state=1;
}
//抓取返回,点击右键
if(e.getButton()==3&&line.state==3&&Bg.waterNum>0){
Bg.waterFlag=true;
Bg.waterNum--;
}
break;
case 2:
if(e.getButton()==1){
bg.shop=true;
}
if (e.getButton()==3){
state=1;
bg.startTime = System.currentTimeMillis();
}
break;
case 3:
case 4:
if(e.getButton()==1){
state=0;
bg.reGame();
line.reGame();
}
break;
default:
}
}
});
while (true){
repaint();
nextLevel();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//下一关
public void nextLevel(){
if(bg.gameTime() && state==1){
if(Bg.count >= bg.goal) {
state = 2;
Bg.level++;
}else {
state=3;
int temp_id =(int) new Random().nextInt(100);
while(true){
if(!ids.contains(temp_id)){
ids.add(temp_id);
break;
}else {
temp_id=(int) new Random().nextInt(100);
}
}
//封装User类
user.setId(temp_id);
user.setName("第"+temp_id+"号黄金矿工");
user.setScore(Bg.count);
//存储user到数据库
try {
MybatisUtils.InsertUser(user);
} catch (IOException e) {
e.printStackTrace();
}
}
dispose();
GameWin gameWin1 = new GameWin();
gameWin1.launch();
}
}
//打印图片到窗口上
@Override
public void paint(Graphics g) {
offScreenImage = this.createImage(768,1000);
Graphics gImage = offScreenImage.getGraphics();
try {
bg.paintSelf(gImage);
} catch (IOException e) {
e.printStackTrace();
}
if(state==1){
//绘制物体
for(Obj obj: objList)
{
obj.paintSelf(gImage);
}
line.paintSelf(gImage);
}
g.drawImage(offScreenImage,0,0,null);
}
public static void main(String[] args) {
GameWin gameWin=new GameWin();
Musicutils.playMusic();
gameWin.launch();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JavaGUI课程设计黄金矿工源码(关注私信我获取解析文档)
共51个文件
xml:17个
class:14个
java:13个
需积分: 19 0 下载量 114 浏览量
2023-03-11
23:08:31
上传
评论 1
收藏 64KB ZIP 举报
温馨提示
Java的开发中主要用到得技术java se,Mybatis,Maven,MySQL,Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。 MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 Maven是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。 MySQL是一个小型的开源的关系型数据库管理系统,与其他大型数据库管理系统例如Oracle、DB2、SQL Server等相比,MySQL规模小,功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。
资源推荐
资源详情
资源评论
收起资源包目录
黄金矿工源码.zip (51个子文件)
黄金矿工
pom.xml 2KB
src
test
java
test.java 2KB
main
resources
logback.xml 870B
mybatis-config.xml 2KB
com
Get
mapper
UserMapper.xml 310B
java
com
Get
Game
Line.java 4KB
GameWin.java 6KB
Bg.java 4KB
mapper
UserMapper.java 428B
User
User.java 690B
utils
Musicutils.java 1KB
MybatisUtils.java 3KB
Obj
Gold.java 542B
Obj.java 671B
GoldMini.java 492B
Rock.java 432B
GoldPlus.java 494B
.idea
codeStyles
Project.xml 1KB
dataSources
dataSources.local.xml 474B
uiDesigner.xml 9KB
dbnavigator.xml 22KB
vcs.xml 175B
workspace.xml 13KB
misc.xml 526B
dataSources.xml 479B
compiler.xml 656B
encodings.xml 267B
target
classes
logback.xml 870B
mybatis-config.xml 2KB
com
Get
Game
Line.class 3KB
GameWin$1.class 1KB
GameWin.class 5KB
Bg.class 4KB
mapper
UserMapper.xml 310B
UserMapper.class 414B
User
User.class 1KB
utils
Musicutils.class 2KB
MybatisUtils.class 2KB
Obj
GoldMini.class 747B
Rock.class 790B
Obj.class 951B
Gold.class 790B
GoldPlus.class 748B
Gold-1.0-SNAPSHOT.jar 19KB
test-classes
test.class 2KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 344B
inputFiles.lst 747B
testCompile
default-testCompile
createdFiles.lst 11B
inputFiles.lst 47B
maven-archiver
pom.properties 112B
generated-test-sources
test-annotations
generated-sources
annotations
Gold.iml 81B
共 51 条
- 1
资源评论
小小程序○
- 粉丝: 1046
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Q1.py
- 企业政府灵智电子政务网站系统-lingzhi.rar
- Thinkphp内核开发Lsky Pro兰空图床网站源码.rar
- 基于FPGA(XC6SLX9)+SDRAM+AD7829多通道数据采集板硬件(原理图+PCB)工程文件.zip
- 阿里巴巴精准测试体系:基于代码链路分析的性能优化方案
- mmexport1714217773503.jpg
- 【图片网盘外链系统5.0】全新前端UI界面设计 支持图片违规检测网站自适应H5源码.rar
- jsp+sql的BBS论坛系统.zip
- 网盘外链PHP开发彩虹网盘外链程序源码.rar
- 2023年最新文件快递柜系统网站源码 保护用户隐私的匿名口令分享和临时文件分享功能.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功