package com.sxt;
import jdk.nashorn.internal.ir.CallNode;
import org.w3c.dom.ls.LSOutput;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
public class GameWin extends JFrame { //继承JFrame才能监听鼠标键盘事件的功能
//设置静态变量 表示游戏状态 0表示未开始 1运行中 2商店 3失败 4胜利
static int state;
//创建链表 存储金块 石块
List<Object> objectList = new ArrayList<>();
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 (Object obj:objectList){
if (gold.getRoc().intersects(obj.getRoc())) {
//发生重叠 不能放置 需要重新生成
isPlace=false;
}
}
//循环完毕 判断是否可放置
if (isPlace){
objectList.add(gold);
}else {
isPlace=true;
i--;
}
}
//循环创建石块
for (int i = 0; i < 5; i++){
Rock rock = new Rock();
for (Object obj:objectList){
if (rock.getRoc().intersects(obj.getRoc())) {
isPlace = false;
}
}
if (isPlace){
objectList.add(rock);
}else {
isPlace=true;
i--;
}
}
}
Image offScreenImage;
void launch(){ //launch方法初始化窗口信息
this.setVisible(true);//设置窗口可见
this.setSize(768,1000);
this.setLocationRelativeTo(null);//窗口位置:居中
this.setTitle("黄金矿工");
setDefaultCloseOperation(WindowConstants.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){//如果当前积分大于等于目标积分
if (Bg.level==1){
state=4;
}else {
state=2;
Bg.level++;//关卡数加一
}
}else {
state=3;
}
dispose();//释放已过关窗体
GameWin gameWin = new GameWin();
gameWin.launch();//调用launch方法绘制新窗口
}
}
@Override
public void paint(Graphics g) {
//画布与窗体大小相同
offScreenImage = this.createImage(768,1000);
//给画布添加画笔
Graphics gImage = offScreenImage.getGraphics();
bg.paintSelf(gImage);
if (state == 1){
//先画物体
for(Object obj:objectList){
obj.paintSelf(gImage);
}
//后画线
line.paintSelf(gImage);
}
//将画布绘制到窗口中
g.drawImage(offScreenImage,0,0,null);
}
public static void main(String[] args) {
GameWin gameWin = new GameWin();
gameWin.launch();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java黄金矿工窗口游戏.zip
共28个文件
class:9个
java:6个
png:4个
需积分: 1 0 下载量 165 浏览量
2023-12-07
23:07:43
上传
评论
收藏 140KB ZIP 举报
温馨提示
java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip java黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zipjava黄金矿工窗口游戏.zip
资源推荐
资源详情
资源评论
收起资源包目录
java黄金矿工窗口游戏.zip (28个子文件)
code_20105
src
com
sxt
Line.java 4KB
Object.java 575B
GameWin.java 5KB
Gold.java 904B
Bg.java 3KB
Rock.java 396B
out
production
The Gold Miner
com
sxt
GoldMini.class 579B
Line.class 3KB
Rock.class 765B
Object.class 952B
GameWin$1.class 1KB
Gold.class 765B
GameWin.class 4KB
GoldPlus.class 664B
Bg.class 3KB
.idea
misc.xml 273B
modules.xml 268B
.gitignore 176B
The Gold Miner.iml 423B
imgs
gold1.gif 6KB
water.png 4KB
gold0.gif 4KB
gold2.gif 16KB
bg1.jpg 10KB
peo.png 31KB
bg.jpg 35KB
rock1.png 10KB
hook.png 7KB
共 28 条
- 1
资源评论
土豆片片
- 粉丝: 1529
- 资源: 5641
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功