aboutsummaryrefslogtreecommitdiff
path: root/src/fallTest/newSongPlayer.java
blob: 46d6e4b3bee36766536aa91696b613513072f6f5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package fallTest;

import javafx.event.EventHandler;

import java.awt.Insets;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;

import javafx.event.*;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.effect.BlurType;
import javafx.scene.effect.DropShadow;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Border;
import javafx.scene.layout.BorderStroke;
import javafx.scene.layout.BorderStrokeStyle;
import javafx.scene.layout.BorderWidths;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;

public class newSongPlayer extends Pane
{
    Timer time = new Timer();
    
    private double dLaneX = 0;

    
	public void init() {
	    Queue<NoteInfo> dSends = new LinkedList<NoteInfo>();         //Queue that dictates when to send the notes
	    ArrayList<Block> dLane = new ArrayList<Block>();     //Array list containing all the notes currently on the field
	    
		Rectangle field = new Rectangle(50, 50, new Color(0, 0, 0, 0.7));
		field.heightProperty().bind(this.getScene().getWindow().heightProperty().multiply(0.95));
		field.widthProperty().bind(this.getScene().getWindow().widthProperty().divide(2.7).add(50));
		TButton dButton = new TButton(Color.RED, 50, 50, 5);
		genButton(dButton);
		/*dButton.setOnKeyPressed(e -> { 
			if (e.getCode() == KeyCode.D) {
				System.out.println("D");
			}
		});*/
		
		TButton fButton = new TButton(Color.BLUE, 50, 50, 5);
		genButton(fButton);
		
		TButton sButton = new TButton(Color.GREEN, 50, 50, 5);
		genButton(sButton);
		
		TButton jButton = new TButton(Color.PURPLE, 50, 50, 5);
		genButton(jButton);
		
		TButton kButton = new TButton(Color.YELLOW, 50, 50, 5);
		genButton(kButton);
		

		HBox buttonBox = new HBox();
		buttonBox.setStyle("-fx-padding: 0;" + "-fx-border-style: solid inside;"
		        + "-fx-border-width: 0;" + "-fx-border-insets: 20;"
		        + "-fx-background-color: black;" + "-fx-opacity: 0.67;");
		buttonBox.setAlignment(Pos.CENTER);
	    buttonBox.getChildren().addAll(dButton, fButton, sButton, jButton, kButton);
	    buttonBox.setSpacing(10);
	    
	    VBox polish = new VBox();
	    polish.getChildren().addAll(field);
	    polish.setAlignment(Pos.TOP_CENTER);
	    
	    VBox place = new VBox();
		place.prefWidthProperty().bind(this.getScene().widthProperty());
		place.prefHeightProperty().bind(this.getScene().heightProperty());
	    place.setAlignment(Pos.BOTTOM_CENTER);
	    place.getChildren().addAll(buttonBox);
	    place.setSpacing(10);
	    
	    StackPane root = new StackPane();
	    root.getChildren().addAll(polish, place);
	    
        super.getChildren().add(root);
        
	    sendNote(dLane);
	}
	
	public void sendNote(ArrayList<Block> lane) {
		lane.add(new Block(Color.PINK, 50, 50, 5));
		lane.get(lane.size()-1).heightProperty().bind(this.getScene().getWindow().widthProperty().divide(16));
		lane.get(lane.size()-1).widthProperty().bind(this.getScene().getWindow().widthProperty().divide(16));
		lane.get(lane.size()-1).arcHeightProperty().bind(this.getScene().getWindow().widthProperty().divide(50));
		lane.get(lane.size()-1).arcWidthProperty().bind(this.getScene().getWindow().widthProperty().divide(50));
		super.getChildren().add(lane.get(lane.size()-1));
	}
	
	public void genButton(TButton button) {
		button.heightProperty().bind(this.getScene().getWindow().widthProperty().divide(16));
		button.widthProperty().bind(this.getScene().getWindow().widthProperty().divide(16));
		button.arcHeightProperty().bind(this.getScene().getWindow().widthProperty().divide(50));
		button.arcWidthProperty().bind(this.getScene().getWindow().widthProperty().divide(50));
		button.strokeWidthProperty().bind(this.getScene().getWindow().widthProperty().divide(210));
	}
}