Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package dskdev_game_dice;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import javafx.application.Application;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.scene.Scene;
- import javafx.scene.control.Alert;
- import javafx.scene.control.Alert.AlertType;
- import javafx.scene.control.Button;
- import javafx.scene.control.Menu;
- import javafx.scene.control.MenuBar;
- import javafx.scene.control.MenuItem;
- import javafx.scene.control.ToolBar;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import javafx.scene.input.MouseButton;
- import javafx.scene.input.MouseEvent;
- import javafx.scene.layout.Pane;
- import javafx.scene.layout.VBox;
- import javafx.stage.Stage;
- public class Game extends Application {
- public static void main(String[] args) {
- Application.launch(args);
- }
- @Override
- public void start(Stage game) throws Exception {
- game.setTitle("Gra w kości");
- VBox panel = new VBox(createMenu());
- Scene scene = new Scene(panel, 800, 600);
- game.setScene(scene);
- game.show();
- }
- // tworzenie menu górnego głównej aplikacji
- private MenuBar createMenu() {
- MenuBar menu = new MenuBar();
- Menu dicesNumber = new Menu("Wybierz ilość kości");
- MenuItem two = new MenuItem("Dwie");
- MenuItem three = new MenuItem("Trzy");
- MenuItem four = new MenuItem("Cztery");
- MenuItem five = new MenuItem("Pięć");
- two.setOnAction(new showChoseOption(2));
- three.setOnAction(new showChoseOption(3));
- four.setOnAction(new showChoseOption(4));
- five.setOnAction(new showChoseOption(5));
- dicesNumber.getItems().addAll(two, three, four, five);
- menu.getMenus().add(dicesNumber);
- return menu;
- }
- // tworzenie przycisku który będzie odpowiadał za przerzucenie kości
- private ToolBar createToolBar() {
- ToolBar bar = new ToolBar();
- Button roll = new Button("Przerzuć kości");
- roll.setOnAction(event -> {
- Alert rollAlert = new Alert(AlertType.INFORMATION);
- rollAlert.setTitle("ALERT");
- rollAlert.setHeaderText("Pomyślnie przerzucono kości");
- rollAlert.showAndWait();
- });
- bar.getItems().add(roll);
- return bar;
- }
- private List<Image> createDiceImagesList() {
- Image img1 = new Image("dskdev_game_dice/die_1.png");
- Image img2 = new Image("dskdev_game_dice/die_2.png");
- Image img3 = new Image("dskdev_game_dice/die_3.png");
- Image img4 = new Image("dskdev_game_dice/die_4.png");
- Image img5 = new Image("dskdev_game_dice/die_5.png");
- Image img6 = new Image("dskdev_game_dice/die_6.png");
- List<Image> images = new ArrayList<>();
- Collections.addAll(images, img1, img2, img3, img4, img5, img6);
- return images;
- }
- // reszta logiki - generowanie kości, przerzucanie
- private class showChoseOption implements EventHandler<ActionEvent> {
- int number;
- public showChoseOption(int n) {
- number = n;
- }
- @Override
- public void handle(ActionEvent event) {
- Alert alertWindow = new Alert(AlertType.INFORMATION);
- alertWindow.setTitle("Wybrano opcję");
- alertWindow.setHeaderText("Ilość kości, które będą do przerzucenia: " + number);
- alertWindow.showAndWait();
- Stage diceGameStage = new Stage(); // nowe okno z kośćmi
- VBox dicePanel = new VBox(createToolBar()); // ogólny VBox dla kości podzielony na menu + obszar rysowania kości
- Pane diceArea = new Pane(); // obszar rysowania kości
- dicePanel.getChildren().add(diceArea); // dodanie obszaru rysowania kości do VBoxa
- Scene diceScene = new Scene(dicePanel, 450, 400);
- List<Image> images = createDiceImagesList();
- int diePosX = 20;
- final int diePosY = 90;
- for(int i = 0; i < number; i++) {
- ImageView view = new ImageView(images.get((int) Math.floor(Math.random() * 6)));
- view.setFitHeight(50);
- view.setFitWidth(50);
- view.setX(diePosX);
- view.setY(diePosY);
- diceArea.getChildren().add(view);
- diePosX += 90;
- view.addEventHandler(MouseEvent.MOUSE_CLICKED, e -> {
- if(e.getButton() == MouseButton.PRIMARY) {
- view.setScaleX(1.4);
- view.setScaleY(1.4);
- } else if(e.getButton() == MouseButton.SECONDARY) {
- view.setScaleX(1);
- view.setScaleY(1);
- }
- });
- }
- diceGameStage.setTitle("Przerzucenie");
- diceGameStage.setScene(diceScene);
- diceGameStage.show();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement