-
Notifications
You must be signed in to change notification settings - Fork 2
/
mainScreen.js
86 lines (81 loc) · 1.55 KB
/
mainScreen.js
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
class MainScreen extends Screen {
constructor(name, description, bgColor) {
super(name, description, bgColor)
this.createButtons()
}
createButtons() {
this.buttons = [
new RectangularPaintedButton(
"1 - Grade One Mode",
0,
0,
BUTTON_WIDTH,
() => {
this.gotoScreen(
new Game(
"Grade One Mode",
"",
gradeOnePhrases,
"🍪",
5,
candyBackground,
Screen.BgHorizontalAlign.CENTER,
Screen.BgVerticalAlign.BOTTOM
)
)
}
),
new RectangularPaintedButton(
"2 - General Mode",
0,
0,
BUTTON_WIDTH,
() => {
this.gotoScreen(
new Game(
"General Mode",
"",
standardPhrases,
"_",
3,
candyBackground,
Screen.BgHorizontalAlign.CENTER,
Screen.BgVerticalAlign.BOTTOM
)
)
}
),
// The button to return to the main menu
new RectangularPaintedButton(
"☰ Configuration",
0,
0,
BUTTON_WIDTH,
() => {
this.gotoScreen(new ConfigurationScreen("☰", "", color(50, 150, 150)))
}
),
]
const n = this.buttons.length
this.buttons.forEach((button, i) => {
button.y = i * (BUTTON_HEIGHT + BUTTON_GAP) + 200
button.x = width / 2
})
}
gotoScreen(screen) {
screen.init()
pushScreen(screen)
}
paintedButtons() {
return this.buttons
}
render() {
this.drawBackground()
fill(0, 50, 50)
textAlign(CENTER, CENTER)
textSize(50)
text("Char Char Bang!", width / 2, 60)
textSize(30)
this.buttons.forEach((b) => b.render())
}
}