-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathHUD.py
164 lines (144 loc) · 7.81 KB
/
HUD.py
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
import arcade
import os
def dibujar_hud(vida, carga_fantasmal):
"""Dibuja en pantalla el hud si se invoca en el método on_draw"""
# Vida
if 9 < vida <= 10:
vida_x = 0
elif 8 < vida <= 9:
vida_x = -20 # Cada barra de vida una son 20 pixeles
elif 7 < vida <= 8:
vida_x = -40
elif 6 < vida <= 7:
vida_x = -60
elif 5 < vida <= 6:
vida_x = -80
elif 4 < vida <= 5:
vida_x = -100
elif 3 < vida <= 4:
vida_x = -120
elif 2 < vida <= 3:
vida_x = -140
elif 1 < vida <= 2:
vida_x = -160
elif 0 < vida <= 1:
vida_x = -180
else:
return # no tenemos que dibujar vida
barra_de_vida = arcade.load_texture("sprites_master" + os.path.sep + "VIDA.png", x=vida_x, y=0, width=200,
height=50, mirrored=True)
arcade.draw_texture_rectangle(160, 865, 200, 50, barra_de_vida) # centrox, centroy, ancho, alto, textura
icono_de_vida = arcade.load_texture("sprites_master" + os.path.sep + "VIDAPOWERUP.png")
arcade.draw_texture_rectangle(35, 867.5, 50, 50, icono_de_vida)
# Carga Fantasmal
carga_fantasmal_s = str(carga_fantasmal) # lo convertimos a String
if carga_fantasmal >= 100:
arcade.draw_text(carga_fantasmal_s, 50, 800, arcade.color.GREEN_YELLOW, 24)
else:
arcade.draw_text(carga_fantasmal_s, 50, 800, arcade.color.WHITE, 24)
icono_carga = arcade.load_texture("sprites_master" + os.path.sep + "alma.png")
arcade.draw_texture_rectangle(30, 815, 25, 25, icono_carga)
def dibujar_contador_de_muerte(contador):
arcade.draw_text(str(int(contador / 60)), 445, 825, arcade.color.RED_ORANGE, 40, bold=True, align="center")
arcade.draw_text("¡Acaba con todos los enemigos de la sala!", 250, 800, arcade.color.RED_ORANGE, 20, bold=True,
align="center")
def dibujar_pantalla_de_inicio():
arcade.draw_texture_rectangle(450, 450, 900, 900,
arcade.load_texture("sprites_master" + os.path.sep + "PANTALLAINICIO.jpg"))
arcade.draw_text("Pulsa enter para comenzar", -50, 450, arcade.color.GUPPIE_GREEN, 20, 450, "center", bold=True)
arcade.draw_text("Pulsa 'C' para ver los controles", 500, 450, arcade.color.GUPPIE_GREEN, 20, 450, "center")
def dibujar_controles():
arcade.draw_lrtb_rectangle_filled(0, 900, 900, 0, arcade.color.BLACK)
arcade.draw_text("Moverse: W,A,S,D ó las flechas", 0, 550, arcade.color.GUPPIE_GREEN, 20, 900, "center")
arcade.draw_text("Disparar: Q", 0, 450, arcade.color.GUPPIE_GREEN, 20, 900, "center")
arcade.draw_text("Bloquear dirección: Espacio", 0, 350, arcade.color.GUPPIE_GREEN, 20, 900, "center")
arcade.draw_text("Pausar/Reaunudar el juego: P", 0, 250, arcade.color.GUPPIE_GREEN, 20, 900, "center")
arcade.draw_text("Pulsa retroceso para volver", 0, 100, arcade.color.GUPPIE_GREEN, 20, 900, "center")
def dibujar_hud_pausado(buffs):
arcade.draw_lrtb_rectangle_filled(0, 900, 900, 0, arcade.color.BLACK)
arcade.draw_text("Pausado", 0, 800, arcade.color.WOOD_BROWN, 40, 900, "center", bold=True)
arcade.draw_text("Pulsa P para volver", 0, 100, arcade.color.WOOD_BROWN, 30, 900, align="center", bold=True)
if buffs[0]:
# Info modo fantasmal
icono_carga = arcade.load_texture("sprites_master" + os.path.sep + "alma.png")
arcade.draw_text(
"Modo fantasmal: Una vez tu vida llegue a 0, consumirás 100 de y te convertirás en un fantasma",
0, 750, arcade.color.GREEN_YELLOW, 17, 900, align="center", bold=True)
arcade.draw_texture_rectangle(585, 760, 25, 25, icono_carga)
arcade.draw_text(
"Si matas a todos los enemigos de la sala en 10 segundos siendo un fantasma, volverás a la vida.",
0, 700, arcade.color.GREEN_YELLOW, 17, 900, align="center", bold=True)
if buffs[1] or buffs[2]:
arcade.draw_text("Mejoras modo fantasmal:", 450, 550, arcade.color.GREEN_YELLOW, 17, 450, align="center",
bold=True)
if buffs[1]:
# Info mejora velocidad modo fant
arcade.draw_text(
"Velocidad: x1.5",
450, 500, arcade.color.GREEN_YELLOW, 17, 450, align="center", bold=True)
if buffs[2]:
# Info mejora triple disparo modo fant
arcade.draw_text(
"Triple disparo",
450, 450, arcade.color.GREEN_YELLOW, 17, 450, align="center", bold=True)
if buffs[3] or buffs[4]:
arcade.draw_text("Mejoras generales:", 0, 550, arcade.color.GOLDEN_BROWN, 17, 450, align="center",
bold=True)
arcade.draw_text(
"Las mejoras generales también afectan al modo fantasmal",
0, 650, arcade.color.GOLDEN_BROWN, 17, 900, align="center", bold=True)
if buffs[3]:
# Info mejora velocidad permanente
arcade.draw_text(
"Velocidad: x1.2",
0, 500, arcade.color.GOLDEN_BROWN, 17, 450, align="center", bold=True)
if buffs[4]:
# Info mejora daño permanente
arcade.draw_text(
"Daño doble",
0, 450, arcade.color.GOLDEN_BROWN, 17, 450, align="center", bold=True)
def dibujar_hud_gameover(gameover_por_final_malo):
arcade.draw_lrtb_rectangle_filled(0, 900, 900, 0, arcade.color.BLACK)
arcade.draw_text("GAME OVER", 0, 450, arcade.color.RED_DEVIL, 36, 900, align="center", bold=True)
if gameover_por_final_malo:
arcade.draw_text("Necesitabas todas las piezas del artefacto!!", 0, 350, arcade.color.RED_DEVIL, 24, 900,
align="center")
arcade.draw_text("Pulsa R para reiniciar", 0, 250, arcade.color.RED_DEVIL, 24, 900, align="center")
arcade.draw_text("(Puede tardar unos segundos)", 0, 150, arcade.color.RED_DEVIL, 24, 900, align="center")
def mostrar_mensaje_buff(n):
arcade.draw_lrtb_rectangle_filled(300, 800, 875, 825, arcade.color.DARK_SEA_GREEN)
if n == 1:
# Buff inicial para habilitar el modo fantasmal
arcade.draw_text("Ahora ya puedes habilitar el modo fantasamal!", 300, 850,
arcade.color.WHITE, align="center", bold=True, font_size=18)
elif n == 2:
# Buff mejora de velocidad modo fantasmal
arcade.draw_text("Ahora vas más rápido durante el modo fantasmal!", 300, 850,
arcade.color.WHITE, align="center", bold=True, font_size=18)
elif n == 3:
# Disparo triple modo fantasmal
arcade.draw_text("Ahora disparas tres balas durante el modo fantasmal!", 300, 850,
arcade.color.WHITE, align="center", bold=True, font_size=18)
elif n == 4:
# Velocidad 1.2 permanente
arcade.draw_text("Ahora vas más rápido!", 300, 850,
arcade.color.WHITE, align="center", bold=True, font_size=18)
elif n == 5:
# Daño doble permanente
arcade.draw_text("Ahora haces más daño!", 300, 850,
arcade.color.WHITE, align="center", bold=True, font_size=18)
arcade.draw_text("Ve al menú de pausa para más información", 300, 825,
arcade.color.WHITE, align="center", bold=True, font_size=16)
def dibujar_partes_artefacto(buffs):
if buffs[0]:
piedra = arcade.load_texture("sprites_master" + os.path.sep + "PARTE1.png")
arcade.draw_texture_rectangle(840, 840, 40, 50, piedra)
if buffs[1]:
vasija = arcade.load_texture("sprites_master" + os.path.sep + "PARTE3.png")
arcade.draw_texture_rectangle(840, 810, 50, 20, vasija)
if buffs[2]:
jaula = arcade.load_texture("sprites_master" + os.path.sep + "PARTE2.png")
arcade.draw_texture_rectangle(840, 840, 40, 50, jaula)
def dibujar_pantalla_final():
arcade.draw_texture_rectangle(450, 450, 900, 900,
arcade.load_texture("sprites_master" + os.path.sep + "PANTALLAFINAL.jpg"))