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;
}
}
}
////////////////////////////////////////////////////////////////////////////