CS-Coursework/website/screens/signUpScreen.js

139 lines
4.2 KiB
JavaScript
Raw Normal View History

2022-11-06 23:52:00 +00:00
class SignUpScreen {
constructor() {
2022-11-11 13:04:13 +00:00
this.textboxes = [
2022-11-06 23:52:00 +00:00
new Textbox(
2022-11-11 13:04:13 +00:00
120,250,
500,100,
0,
true,
"#000",
false, "#000",
2022-11-18 12:27:54 +00:00
"#000",
true
2022-11-06 23:52:00 +00:00
),
new Textbox(
2022-11-11 13:04:13 +00:00
120,400,
500,100,
0,
2022-11-06 23:52:00 +00:00
true,
"#000",
false,"000",
2022-11-18 12:27:54 +00:00
"#000",
false
2022-11-06 23:52:00 +00:00
)
]
2022-11-11 13:04:13 +00:00
this.buttons = [
new Button(
100,200,
500,100,
0,
true,
"#000",
false,"#000",
"#fff",""
),
new Button(
100,350,
500,100,
0,
true,
"#000",
false,"#000",
"#fff",""
),
new Button(
700,300,
100,50,
0,
true,
"#000",
false,"#000",
"#00ff00","Sign Up"
),
2022-11-17 11:48:12 +00:00
new Button(0,0,100,30,0,true,"#fff",false,"#000","#000","Sign Up"),
new Button(110,0,100,30,0,true,"#fff",false,"#000","#000","Login"),
new Button(220,0,100,30,0,true,"#fff",false,"#000","#000","Logout"),
new Button(330,0,100,30,0,true,"#fff",false,"#000","#000","Profile"),
2022-11-17 12:10:54 +00:00
new Button(440,0,100,30,0,true,"#fff",false,"#000","#000","Test"),
2022-11-18 11:33:25 +00:00
new Button(550,0,140,30,0,true,"#fff",false,"#000","#000","Leaderboard"),
2022-11-11 13:04:13 +00:00
]
this.activeTextBox = 0
// keeps track of which textbox the user last clicked on
2022-11-06 23:52:00 +00:00
}
/**
* Draws the SignUpScreen class with all
* appropriate elements
*/
draw() {
background("#eeeee4");
2022-11-11 13:04:13 +00:00
for (let i = 0; i < this.buttons.length; i++) {
this.buttons[i].draw();
}
for (let i = 0; i < this.textboxes.length; i++) {
this.textboxes[i].draw();
}
2022-11-17 11:48:12 +00:00
fill("#000");
2022-11-11 13:04:13 +00:00
text("Username", 110, 175);
text("Password", 110, 325);
if (this.buttons[0].isPressed()) {
2022-11-18 12:27:54 +00:00
this.textboxes[this.activeTextBox].line = false;
2022-11-11 13:04:13 +00:00
this.activeTextBox=0;
2022-11-18 12:27:54 +00:00
this.textboxes[this.activeTextBox].line = true;
2022-11-11 13:04:13 +00:00
} else if (this.buttons[1].isPressed()) {
2022-11-18 12:27:54 +00:00
this.textboxes[this.activeTextBox].line = false;
2022-11-11 13:04:13 +00:00
this.activeTextBox=1;
2022-11-18 12:27:54 +00:00
this.textboxes[this.activeTextBox].line = true;
2022-11-11 13:04:13 +00:00
} else if (this.buttons[2].isPressed()) {
api.createUser(
this.textboxes[0].getWords(),
this.textboxes[1].getWords()
)
screenManager.setScreen(new StartScreen());
2022-11-18 11:33:25 +00:00
} else if (this.buttons[3].isPressed()) {
2022-11-17 11:48:12 +00:00
screenManager.setScreen(new SignUpScreen());
} else if (this.buttons[4].isPressed()) {
screenManager.setScreen(new LoginScreen());
} else if (this.buttons[5].isPressed()) {
api.logout();
} else if (this.buttons[6].isPressed()) {
screenManager.setScreen(new ProfileScreen());
} else if (this.buttons[7].isPressed()) {
screenManager.setScreen(new TestScreen())
2022-11-18 12:27:54 +00:00
} else if (this.buttons[8].isPressed()) {
2022-11-18 11:33:25 +00:00
screenManager.setScreen(new LeaderboardScreen())
2022-11-17 11:48:12 +00:00
}
2022-11-06 23:52:00 +00:00
}
/**
*
* @param {key} key
*/
2022-11-18 12:27:54 +00:00
letterTyped(key) {
if (key === "Tab" && this.activeTextBox === 0) {
this.textboxes[this.activeTextBox].line = false;
this.activeTextBox=1;
this.textboxes[this.activeTextBox].line = true;
} else if (key === "Tab" && this.activeTextBox === 1) {
this.textboxes[this.activeTextBox].line = false;
this.activeTextBox=0;
this.textboxes[this.activeTextBox].line = true;
} else if (key === "Enter") {
api.createUser(
this.textboxes[0].getWords(),
this.textboxes[1].getWords()
)
screenManager.setScreen(new StartScreen());
} else {
this.textboxes[this.activeTextBox].letterTyped(key);
}
2022-11-06 23:52:00 +00:00
}
}