-
Notifications
You must be signed in to change notification settings - Fork 0
/
handlers.wlk
119 lines (92 loc) · 2.39 KB
/
handlers.wlk
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
110
111
112
113
114
115
116
117
118
119
import audio.*
import example.*
import visuales.*
import wollok.game.*
object contador {
var property puntos = 0
const property celeste = "279df5cc"
method position () = game.at(7, 11)
method aumentarPuntos() {
puntos += 10
}
method text() = " Puntos: " + puntos
method textColor() = celeste
}
object contadorNafta {
var property nafta = 100
method agregarNafta(cantidad) {
nafta = 100.min(nafta + cantidad)
if (nafta <= 0){
cartelFinal.iniciar()
}
}
method agregarNaftaFilaSuperior() {
gasolina.restaurarUbicacion()
game.addVisual(gasolina)
}
method reiniciarNafta() {
nafta = 100
}
const property celeste = "279df5cc"
method position () = game.at(0, 0)
method text() = " Nafta: " + nafta
method textColor() = celeste
}
class Manejador {
const lista = new List()
method obtenerLista() = lista
method movimiento() {
lista.forEach{objeto => objeto.moverseHaciaAbajo()}
}
method sacar(){
lista.forEach{objeto => game.removeVisual(objeto)}
lista.clear()
}
}
object manejadorAutos inherits Manejador {
method agregarAutosFilaSuperior() {
const nuevoAuto = new AutoEnemigo ()
nuevoAuto.verificarPosicion()
lista.add(nuevoAuto)
game.addVisual(nuevoAuto)
}
}
object manejadorConos inherits Manejador {
method agregarConosFilaSuperior() {
const nuevoCono = new Cono ()
nuevoCono.verificarPosicion()
lista.add(nuevoCono)
game.addVisual(nuevoCono)
}
}
object manejadorColisiones {
method iniciar(){
game.onTick(300, "moverAutos", { manejadorAutos.movimiento() })
game.onTick(300, "moverObstaculos", { manejadorConos.movimiento() })
game.onTick(100, "aumentarPuntos", { contador.aumentarPuntos() })
game.onTick(500, "disminuirNafta", { contadorNafta.agregarNafta(-1) })
game.onTick(300, "moverGasolina", { gasolina.moverseHaciaAbajo() })
}
}
object reiniciarJuego{
method iniciar() {
gasolina.image("gasolina.png")
contadorNafta.reiniciarNafta()
manejadorAutos.sacar()
manejadorConos.sacar()
contador.puntos(0)
cargarVisuales.iniciar()
manejadorColisiones.iniciar()
estadoJuego.reanudarJuego()
}
}
object estadoJuego {
var property enPausa = false
method pausarJuego() {
enPausa = true
}
method reanudarJuego() {
enPausa = false
}
method estaPausado() = enPausa
}