-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPeach.py
139 lines (112 loc) · 3.45 KB
/
Peach.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
import constants
class Peach:
def __init__(self, x=210, y=185, lives=3, image_u=0, image_v=0, ani_size=16, dir=1):
self._x = x
self._y = y
self._in_jump = False
self._dir_jump = 1
self._lives = lives
self._image_u = image_u
self._image_v = image_v
self._ani_size = ani_size # -> Tamño de la animacion
self._dir = dir # -> Direccion del moñeco
self._inmunity = False
self._jump_counter = 0
def check_alive(self):
if self._lives > 0: return True
else: return False
def move(self, x, direction, limite_x_start = 0 , limite_x_end = 190):
'''
Mueve el muñeco de mario
:param x: cantidad de movimiento
:param direction: ( 0 ) derecha, ( 1 ) izquierda
:return: None
'''
# movemos el moñeco en el eje x
if direction == 0 and (self._x <= limite_x_end-x): self._x += x
if direction == 1 and (self._x >= limite_x_start+x): self._x -= x
# fijamos la direccion
self._dir = direction
def jump(self):
# activamos el salto
self._in_jump = True
# salto hacia arriba
if self._dir_jump:
# movemos una posicion hacia arriba
self.move_up(1)
# aumentamos el contador
self._jump_counter += 1
# descensp
else:
self.move_down(1)
# decrementamos el contador
self._jump_counter -= 1
# fijamos la direccion
if self._jump_counter == 0:
self._dir_jump = 1
self._in_jump = False
elif self._jump_counter == constants.max_jump: self._dir_jump = 0
def move_up(self, escalera_h):
'''
Metodo para subir las escaleras
:return:
'''
self._y -= escalera_h
def move_down(self, escalera_h):
'''
Metodo para bajar las escaleras
:return:
'''
self._y += escalera_h
def get_lives(self):
return self._lives
def get_x(self):
return self._x
def get_y(self):
return self._y
def get_u(self):
return self._image_u
def get_v(self):
return self._image_v
def get_size(self):
return self._ani_size
def decrement_life(self):
'''
Metodo para quitarle una vida a peach cuando toca un barril
:return:
'''
self._lives -= 1
def get_dir(self):
'''
Devuelve la direccion de peach
:return:
'''
return self._dir
def set_dir(self, dir):
'''
Fija la direccion de peach
:return:
'''
# controlamos la entrada fijando que la direccion solo puede ser 1 o 0
if dir != 0 or dir != 1: raise Exception("Direccion introducida no valida")
# fijamos la direccion
self._dir = dir
def set_inmunity(self, inmunity):
'''
fija la inmunnidad
:param inmunity:
:return:
'''
self._inmunity = True if inmunity else False
def get_inmunity(self):
'''
Devuelve si tiene inmunidad o no
:return:
'''
return self._inmunity
def get_in_jump(self):
'''
Devuelve si estaa saltando o no
:return:
'''
return self._in_jump