2023-10-17 15:15:41 +01:00
|
|
|
/**
|
|
|
|
* @file This files is the root of the website.
|
|
|
|
* @author Arlo Filley
|
|
|
|
*/
|
|
|
|
|
|
|
|
// these are all of the globally accessible variables that are
|
|
|
|
// needed for the site to run correctly
|
|
|
|
let canvas, api, screenManager, user;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* loads the any assets before the setup function
|
|
|
|
* this allows p5.js to acess these assets including: sprites,
|
|
|
|
* fonts, etc
|
|
|
|
*/
|
|
|
|
function preload() {
|
|
|
|
roboto = loadFont('./assets/fonts/RobotoMono-Medium.ttf');
|
2024-03-23 15:56:37 +00:00
|
|
|
accountIconBlack = loadImage('./assets/icons/account_circle_black.svg');
|
|
|
|
accountIconWhite = loadImage('./assets/icons/account_circle_white.svg');
|
2023-10-17 15:15:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* defines variables and sets up the p5.js canvas
|
|
|
|
* ready to be drawn with using the draw() function
|
|
|
|
*/
|
|
|
|
function setup() {
|
|
|
|
canvas = new Canvas();
|
|
|
|
canvas.resize();
|
|
|
|
canvas.center();
|
|
|
|
|
|
|
|
frameRate(60);
|
|
|
|
|
|
|
|
api = new API();
|
|
|
|
screenManager = new ScreenManager();
|
|
|
|
user = new User();
|
|
|
|
screenManager.setScreen(new StartScreen());
|
|
|
|
|
|
|
|
api.login(null, null, true);
|
|
|
|
api.getTest();
|
|
|
|
textFont(roboto);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* called once per frame. draws all other elements onto the canvas
|
|
|
|
* mostly will just call the screenManager.draw() method to make
|
|
|
|
* sure that the correct screen is being drawn
|
|
|
|
*/
|
|
|
|
function draw() {
|
|
|
|
background(user.colorScheme.background);
|
|
|
|
screenManager.draw();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* called whenever a key is pressed, the variable key contains the
|
|
|
|
* key that the user last pressed
|
|
|
|
*/
|
|
|
|
function keyPressed() {
|
|
|
|
screenManager.letterTyped(key);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* called whenever the user resizes the window. Uses methods from the canvas wrapper class
|
|
|
|
* to resize and center the canvas such that it displays correctly
|
|
|
|
*/
|
|
|
|
function windowResized() {
|
|
|
|
canvas.resize();
|
|
|
|
canvas.center();
|
|
|
|
}
|