-
Notifications
You must be signed in to change notification settings - Fork 0
/
player_controls.py
76 lines (61 loc) · 2.86 KB
/
player_controls.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
import pygame
class Player_Controls:
def __init__(self, controllerType):
self.controller_type = controllerType
if self.controller_type == "MANETTE":
# Initialisation des manettes
pygame.joystick.init()
# Vérifier le nombre de manettes connectées
self.joystick_count = pygame.joystick.get_count()
self.joystick = None # On initialise la manette à None pour le moment
if self.joystick_count > 0:
# Sélectionne la première manette disponible
self.joystick = pygame.joystick.Joystick(0)
self.joystick.init() # Initialisez la manette sélectionnée
self.joystick_dead_zone = 0.8
elif self.controller_type == "CLAVIER":
self.keysMap = {
'left' : pygame.K_q,
'right' : pygame.K_d,
'up' : pygame.K_z,
'down' : pygame.K_s,
'jump' : pygame.K_SPACE,
'gravity_down' : pygame.K_DOWN,
'gravity_right' : pygame.K_RIGHT,
'gravity_up' : pygame.K_UP,
'gravity_left' : pygame.K_LEFT,
'attack': pygame.K_e,
}
def get_control_pressed(self):
if self.controller_type == "CLAVIER":
return_keys = []
keys = pygame.key.get_pressed()
for key,value in self.keysMap.items():
if keys[value]:
return_keys.append(key)
return return_keys
elif self.controller_type == "MANETTE" and self.joystick != None:
return_buttons = []
if self.joystick.get_axis(0)>self.joystick_dead_zone:
return_buttons.append("right")
if self.joystick.get_axis(0)<-self.joystick_dead_zone:
return_buttons.append("left")
if self.joystick.get_axis(1)>self.joystick_dead_zone:
return_buttons.append("down")
if self.joystick.get_axis(1)<-self.joystick_dead_zone:
return_buttons.append("up")
if self.joystick.get_button(0):
return_buttons.append("jump")
if self.joystick.get_button(1):
return_buttons.append("attack")
if self.joystick.get_axis(3)>self.joystick_dead_zone:
return_buttons.append("gravity_right")
if self.joystick.get_axis(3)<-self.joystick_dead_zone:
return_buttons.append("gravity_left")
if self.joystick.get_axis(4)>self.joystick_dead_zone:
return_buttons.append("gravity_down")
if self.joystick.get_axis(4)<-self.joystick_dead_zone:
return_buttons.append("gravity_up")
return return_buttons
else:
return []