MemoryGame Javafx, второй вариант не может быть виден

У меня проблема с учебником, который я практиковал. я пытался делать вещи со своими знаниями и не применять вещи из нашей программы в университете. Пожалуйста, не комментируйте это, а просто постарайтесь помочь мне, если сможете, только с простыми настройками, если это возможно. сейчас я не могу понять новые коды. заранее спасибо, и я ценю каждую помощь, которую я могу получить! Я попытался применить ранее отвеченные вопросы, которые связаны с этим вопросом, как:

с помощью:

PauseTransition pause = new  PauseTransition(Duration.millis(10000));
                pause.setOnFinished(d -> {
                    System.out.println("Fade");
                });
                pause.play();

И это:

// delay & exit on other thread
    new Thread(() -> {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
        }
        System.exit(0);
    }).start();

Но на самом деле ничего не изменилось, это сводит меня с ума. пожалуйста помоги!

вот полный код Примечание: нет ошибок / исключений. игра полностью запущена, но визуально не воспринята.

package project;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import java.util.ArrayList;
import java.util.Collections;

public class MemoryGame extends Application {

    Card card;
    Scene myScene;
    int intialPosition = 80;
    Card selectedCard = null;




    public static void main(String[] args) {
        launch(args);
    }

    //////////////////////////////////////////////////////////////////////////////////////////////

    @Override
    public void start(Stage window) throws Exception {

        window.setTitle("Memory Game!");

        Pane MainPane = new Pane();



        // Create the cards
        ArrayList<Card> cards = new ArrayList<>();
        char c = '1';
        for(int i = 0 ; i < 8 ; i++) {
             card = new Card(c + "");
             cards.add(card);
             card = new Card(c + "");
             cards.add(card); // Add it twice to make matching pairs
             c++;
        }

        Collections.shuffle(cards);


        // Display
        for (int i = 0 ; i < cards.size() ; i++) {
            card = cards.get(i);  // get one of the shuffled cards
            card.getMinorPane().setTranslateX(intialPosition * (i / 4) );
            card.getMinorPane().setTranslateY(intialPosition * (i % 4) );
            MainPane.getChildren().add(card.getMinorPane());
        }








        myScene = new Scene(MainPane, 700, 600);
        window.setScene(myScene);
        window.show();
    }

    class Card {

        private StackPane MinorPane;
        int intialPosition = 80;
        Text L ;
        Rectangle Square ;


        public Card(String letter) {

            MinorPane = new StackPane();
            Square = new Rectangle(intialPosition, intialPosition);
            Square.setStroke(Color.BROWN);
            Square.setFill(Color.BLACK);



            L = new Text(letter);
            L.setFont(Font.font(50));
            L.setStroke(Color.WHITE);


            MinorPane.setAlignment(Pos.CENTER);
            MinorPane.getChildren().addAll(Square, L);







            // Start the action and Flips if the mouse clicked the The Pane
            MinorPane.setOnMouseClicked(e -> {


            if(isVisable())  // if it's already open do nothing
                return;



            if(selectedCard == null) {  // if there is no previous card selected make one
                selectedCard = this;
                setVisable(); }

            else {
              setVisable();



            if(!Matching(selectedCard)) {

                // Pause 
                try { Thread.sleep(500);
                    } catch (InterruptedException e1) {e1.printStackTrace();}

                    selectedCard.hide();
                    this.hide();
            }
                    System.out.println("selected " + selectedCard.L.getText() + "\n second " + this.L.getText()); //to keep track of cards since i cannot see the second one
                    selectedCard = null; // After comparing reset the selected card


            }});



            hide(); // By default all cards start on Hidden State

        }



        public void setVisable() {
            L.setOpacity(1);
        }

        public boolean isVisable() {
            return L.getOpacity() == 1;
        }

        public void hide() {
            L.setOpacity(0);
        }

        public boolean isHidden() {
            return L.getOpacity() == 0;
        }

        public boolean Matching(Card selectedCard) {
            return L.getText().equals(selectedCard.L.getText());
        }

        public StackPane getMinorPane() {
            return MinorPane;
        }

        public Text getL () {
            return L;
        }

    }

}

     ////////////////////////////////////////////////////////////////////////////

0 ответов

Другие вопросы по тегам