Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package model;
- import com.sun.jdi.request.DuplicateRequestException;
- import javafx.animation.ScaleTransition;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import javafx.scene.input.MouseEvent;
- import javafx.scene.layout.Pane;
- import javafx.util.Duration;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.Random;
- public class CardPane extends Pane {
- private ImageView front = new ImageView(new Image("view/img/front.jpg"));;
- private ImageView back;
- private int id;
- private static ArrayList <Integer> randomList = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
- public static void setDelayTime(Duration delayTime) {
- CardPane.delayTime = delayTime;
- }
- public static void sizeDownPool(int e){
- Iterator itr = randomList.iterator();
- while (itr.hasNext())
- {
- int x = (Integer)itr.next();
- if (x == e)
- itr.remove();
- }
- }
- public int getid() {
- return id;
- }
- private static Duration delayTime;
- private static boolean flip;
- public static void setFlip(boolean f){
- CardPane.flip = f;
- }
- public ImageView getFront() {
- return front;
- }
- public ImageView getBack() {
- return back;
- }
- private int generateRandomNumber(){
- if (randomList.size() > 0){
- Random rand = new Random();
- return randomList.get(rand.nextInt(randomList.size()));
- }
- else return 1;
- }
- private ImageView generateRandomBack(){
- this.id = generateRandomNumber();
- return new ImageView(new Image(String.format("view/img/footballers/%d.jpg", id)));
- }
- public CardPane(){
- front.setPreserveRatio(false);
- front.setFitWidth(106);
- front.setFitHeight(107);
- back = generateRandomBack();
- back.setPreserveRatio(false);
- back.setFitHeight(107);
- back.setFitWidth(106);
- getChildren().addAll(back, front);
- setOnMouseClicked((MouseEvent t) -> {
- if (front.getScaleX() == 1 && flip){
- frontToBack();
- GameSystem.addToCheck(id);
- backToFront(GameSystem.flipDuration());
- }
- }
- );
- }
- private void frontToBack(){
- ScaleTransition hideFront = new ScaleTransition(Duration.millis(500), front);
- ScaleTransition showBack = new ScaleTransition(Duration.millis(500), back);
- hideFront.setFromX(1);
- hideFront.setToX(0);
- back.setScaleX(0);
- showBack.setFromX(0);
- showBack.setToX(1);
- hideFront.setOnFinished(t -> showBack.play());
- hideFront.play();
- }
- private void backToFront (boolean isScored){
- ScaleTransition showFront = new ScaleTransition(Duration.millis(500), front);
- ScaleTransition hideBack = new ScaleTransition(Duration.millis(500), back);
- hideBack.setFromX(1);
- hideBack.setToX(0);
- front.setScaleX(0);
- showFront.setFromX(0);
- showFront.setToX(1);
- if (isScored){
- hideBack.setDelay(Duration.INDEFINITE);
- }else{
- hideBack.setDelay(delayTime);
- }
- hideBack.setOnFinished(t -> {
- showFront.play();
- });
- hideBack.play();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement