Java作业记录一下

游戏分为三部分
Constant里面放一些公共变量

import javafx.scene.image.Image;import java.awt.*;public class Game_Constant {Image image_flag = new Image("file:D:\\IDEA\\MineClearance\\flag.jpg");Image image_window = new Image("file:D:\\IDEA\\MineClearance\\icon.jpg");Image image_bomb0 = new Image("file:D:\\IDEA\\MineClearance\\bomb0.jpg");final  int row = 520;final  int col = 585;protected int Easy_MineNum = 20;
}

MyButton是每个区块(雷or数字or旗子)

import javafx.scene.control.Button;import java.awt.*;public class My_Button extends Button {private boolean flag = false;//是否是雷区private int pos_x;private int pos_y;//记录其在坐标系中的位置public boolean judge_flag = false;//是否遍历过public void SetPosX(int x){pos_x = x;}public void SetPosY(int y){pos_y = y;}public int GetPosX(){return pos_x;}public int GetPosY(){return pos_y;}public My_Button(String text){super(text);setPrefWidth(25);setPrefHeight(5);}//    private void setPrefHeight(int i) {
//    }
//
//    private void setPrefWidth(int i) {
//    }public void SetFlag(){flag = true;}public void ReSetFlag(){flag = false;}public boolean GetFlag(){return flag;}}

my_MineClearance是主类

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Orientation;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import java.io.*;
import java.util.Calendar;public class my_MineClearance extends Application
{//设置游戏参数Game_Constant constant = new Game_Constant();String background_url = "file:D:/IDEA/MineClearance/background.png";String bomb_url ="file:D:/IDEA/MineClearance/bomb.jpg";String flag_url ="file:D:/IDEA/MineClearance/flag.jpg";int i,j;//用于访问buttons[][]int mine_num = constant.Easy_MineNum;//总雷数int MineClearNum;// 已清除雷数int MineSuspected;// 疑似雷数(  个数)int mine_around = 0;//应用于计算周围雷数时的初始化//计时器的初始时间long startTime;//退出该窗口的flag//原理是点击在其他窗口点击退出时,将exit_flag设置为ture,再由鼠标移入窗口事件判断,关闭窗口,比较无脑,但好用boolean exit_flag = false;//剩余量文本Text left;String str1 = "剩余      数:" + (mine_num - MineSuspected);//设置困难选择ComboBox<String> comboBox = new ComboBox<>();//存放周围雷数 数组int[][] button_aroundMineNum = new int[500 / 25][500 / 25];AnchorPane root = new AnchorPane();Scene scene = new Scene(root , constant.row,constant.col);ScrollBar scrollBar = new ScrollBar();public static void main(String[] args){Application.launch(args);}@Overridepublic void start(Stage primaryStage){//开始游戏窗口Stage start_game = new Stage();start_game.setTitle("GameStart");start_game.getIcons().addAll(new Image("file:D:\\IDEA\\MineClearance\\bomb.jpg"));Pane start = new Pane();Scene start_game_scene = new Scene(start,600,200);String game_str = "Welcome to my_MineClearance!";Text Welcome = new Text(200,40,game_str);Welcome.setStyle("-fx-font-family: 'FangSong';-fx-font-size: 20;-fx-text-fill: pink");Button game_exit = new Button("Exit");game_exit.setStyle("-fx-background-color:red");Button game_start = new Button("Start");game_start.setStyle("-fx-background-color:lightblue");game_exit.setOnMouseClicked(event -> {start_game.close();});game_start.setOnMouseClicked(event -> {//设置开始时间startTime = System.currentTimeMillis();//开启计时器//ps:myTask是计时器,会实时显示在窗口内//而startTime endTime只是时刻,游戏胜利结束时才会用到myTask.start();start_game.close();primaryStage.show();});//装两个按钮FlowPane flowPane = new FlowPane();flowPane.setLayoutX(220);flowPane.setLayoutY(170);flowPane.getChildren().addAll(game_exit,game_start);flowPane.setHgap(150);//内横距start.setStyle("-fx-background-image: url(" + background_url + "); " +"-fx-background-position: center center; " +"-fx-background-size: 600 200; " +"-fx-background-repeat: stretch;" +"-fx-background-color:  transparent;");start.getChildren().addAll(Welcome,flowPane);start_game.setScene(start_game_scene);start_game.show();//历史记录窗口Stage History_stage = new Stage();History_stage.setTitle("History_list");Pane History_pane = new Pane();Scene History_scene = new Scene(History_pane,350,200);Button History_close = new Button("Close");History_close.setLayoutX(130);History_close.setLayoutY(175);History_close.setOnMouseClicked(event -> {ReStart();History_stage.close();});scrollBar.setLayoutX(335);scrollBar.setLayoutY(10);scrollBar.setPrefHeight(180);scrollBar.setOrientation(Orientation.VERTICAL);scrollBar.valueProperty().addListener(new ChangeListener<Number>() {@Overridepublic void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {vBox.setLayoutY(- newValue.doubleValue());}});History_pane.getChildren().addAll(History_close,vBox,scrollBar);History_stage.setScene(History_scene);addHistory_List();primaryStage.setTitle("Mine_Clearance");//设置窗口图标primaryStage.getIcons().addAll(constant.image_window);//历史记录按钮Button ShowHistory = new Button("History_List");ShowHistory.setOnMouseClicked(event -> {myTask.cancel();History_stage.show();});ShowHistory.setStyle("-fx-background-color:lightgreen");ShowHistory.setLayoutX(400);ShowHistory.setLayoutY(60);//设置退出按钮,在这里设置的原因是便于操控primaryStageButton exit = new Button("Exit");exit.setOnMouseClicked(event -> {primaryStage.close();});exit.setStyle("-fx-background-color:lightblue");exit.setMinSize(20,20);exit.setLayoutX(50);exit.setLayoutY(70);gridPane.setVgap(1);gridPane.setHgap(1);gridPane.setLayoutY(100);root.getChildren().addAll(gridPane,exit,ShowHistory);//添加顶层组件addTopCom();AddButton();//添加布局按钮AddMine();//随机添加雷aroundMineNum();//周围雷数数组addCom();//添加组件//退出窗口,原理在exit_flag处说明scene.setOnMouseEntered(event -> {if(exit_flag) primaryStage.close();});primaryStage.setScene(scene);}//显示												

基于JavaFX的扫lei小游戏相关推荐

  1. 基于STM32的贪吃蛇小游戏

    基于STM32的贪吃蛇小游戏 初学32一个月,学的并不多,便想着做一个贪吃蛇小游戏,因为有51单片机做贪吃蛇的经验,所以实现出来并不困难. 作品简介 游戏面版将在4.3寸480*800)液晶上显示,初 ...

  2. 基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】

    基于单片机stm32f407的单机小游戏----贪吃蛇小游戏 1.介绍 这是我花一个星期完成的一个简单地单机贪吃蛇小游戏项目,芯片是stm32f407,项目是基于正点原子-探索者开发板完成的,有需要的 ...

  3. 基于Java+Swing实现雷电小游戏

    基于Java+Swing实现雷电小游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于java的雷电游戏基本功能包括:敌方飞机随机飞行.我方飞机手动控制飞行,射击比拼,游戏 ...

  4. java 2048游戏_JAVA2048游戏 本课程设计是基于java语言的2048小游戏设计 联合开发网 - pudn.com...

    JAVA2048游戏 所属分类:游戏 开发工具:Java 文件大小:789KB 下载次数:4 上传日期:2020-11-23 10:57:11 上 传 者:滴滴滴大萌 说明:  本课程设计是基于jav ...

  5. 【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏

    基于JAVA的坦克大战小游戏--入门级小游戏 零.项目获取 一.项目简介 二.开发环境 三.游戏玩法 四.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100 ...

  6. 基于JavaSwing开发吃豆子小游戏 课程设计 大作业源码

    基于JavaSwing开发吃豆子小游戏:   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse/Eclipse/idea+Jdk 运行效果图: 基于JavaSwing开发 ...

  7. 基于 Vue 制作一个猜拳小游戏

    目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...

  8. 使用JavaFx实现的俄罗斯方块小游戏

    使用JavaFx编写一个俄罗斯方块小游戏 一.内容介绍 (1)经典俄罗斯方块基础内容: ①七种四小方块组成的方块(田形.L形.反L形.长条形.Z形.S形): ②填满一排消除,到达顶端结束: ③下一个方 ...

  9. 基于JavaSwing开发潜艇大战小游戏 课程设计 大作业源码

    基于JavaSwing开发潜艇大战小游戏:  (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk 运行效果图: 基于JavaSwing开发潜艇大战小游戏:  (大作业) ...

最新文章

  1. 苹果设备iphone,ipad,macbook网络连接慢,开机开什么卡什么,一步解决
  2. MySQL varchar和char类型
  3. Scala, Groovy, Clojure, Jython, JRuby and Java ----我们的工作语言
  4. C++ STL list输出和增加
  5. 通俗易懂的vuex-demo
  6. Spring Boot学习笔记(二)——HelloWorld实现
  7. oracle /etc/fonts simfang.ttf,GitHub - jiaxiaochu/font: 系统缺失字体导致无法显示中文和乱码的解决办法...
  8. 【Spring】配置SpringBoot同时支持http和https访问
  9. 【语音隐写】基于matlab LSB语音隐藏【含Matlab源码 431期】
  10. Nuxt3 服务端渲染 、elementplus多皮肤黑暗模式
  11. 软件工程硕士论文撰写指导
  12. 美团O2O供应链系统架构设计解析
  13. c# 检测中英输入法_C# Winform 中如何获取本机安装输入法,并设置为默认输出语言,如何打开搜狗输入法和手写板...
  14. DIOCP之DEMO-登陆验证设计(二)
  15. python中append函数的用法
  16. 中山医06年考研初试复试全攻略!( 完整版)
  17. c++builder:Project Project1.exe raised exception class EAccessViolation with message 'Access violati
  18. android基础的博客,【复习】Android基础
  19. 2021年中国集成电路行业产业链分析:下游市场需求巨大[图]
  20. 微信小程序——获取用户unionId

热门文章

  1. pycharm 明明解释器里已经下载了sklearn,但还是显示找不到sklearn解决办法
  2. 安卓运营商定制手机锁卡方式研究
  3. ICDAR2017中文检测数据集
  4. 计算机基础知识赏花主观题,计算机学院学生制作校园赏花地图
  5. Mockito超全用例文档
  6. 程序员应对35岁中年危机的措施
  7. Java中创建对象的六个步骤 细分后(new关键字)对象头详细介绍
  8. alibaba pc safe service无法删除,一直在后台运行怎么办?
  9. PLC梯形图设计全自动洗衣机S7-1200博途以及PLC仿真实现之 4. 仿真演示过程
  10. Nginx教程(一) Nginx入门教程