forked from mipsparc/JRESim_Dengo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSwitchDenGo.py
101 lines (93 loc) · 3.35 KB
/
SwitchDenGo.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
import pygame
import time
class SwitchDenGo():
ACCEL_KNOTCH_NUM = 5
BRAKE_KNOTCH_NUM = 9
def __init__(self):
pygame.init()
self.joy = pygame.joystick.Joystick(0)
self.ctrl_nums = (self.joy.get_numaxes(), self.joy.get_numballs(), self.joy.get_numbuttons(), self.joy.get_numhats())
if self.ctrl_nums not in [(6, 0, 16, 0), (4, 0, 14, 1)]:
raise Exception("サポートされていないコントローラです")
self.joy.init()
def loadStatus(self):
self.brake_knotch = 0
self.accel_knotch = 0
self.buttons = []
pygame.event.get()
# ロンチ版
if self.ctrl_nums == (6, 0, 16, 0):
# Xボタン
if self.joy.get_button(2):
self.buttons.append("SW_X")
# Yボタン
if self.joy.get_button(3):
self.buttons.append("SW_Y")
# Aボタン
if self.joy.get_button(0):
self.buttons.append("SW_A")
# Bボタン
if self.joy.get_button(1):
self.buttons.append("SW_B")
# ○ボタン
if self.joy.get_button(15):
self.buttons.append("SW_CIRCLE")
# HOMEボタン
if self.joy.get_button(5):
self.buttons.append("SW_HOME")
knotch_level = self.joy.get_axis(1)
elif self.ctrl_nums == (4, 0, 14, 1):
# Xボタン
if self.joy.get_button(3):
self.buttons.append("SW_X")
# Yボタン
if self.joy.get_button(0):
self.buttons.append("SW_Y")
# Aボタン
if self.joy.get_button(2):
self.buttons.append("SW_A")
# Bボタン
if self.joy.get_button(1):
self.buttons.append("SW_B")
# ○ボタン
if self.joy.get_button(13):
self.buttons.append("SW_CIRCLE")
# HOMEボタン
if self.joy.get_button(12):
self.buttons.append("SW_HOME")
knotch_level = self.joy.get_axis(1)
else:
raise Exception("サポートされていないコントローラです")
if knotch_level > 0.95:
self.accel_knotch = 5
elif knotch_level > 0.75:
self.accel_knotch = 4
elif knotch_level > 0.55:
self.accel_knotch = 3
elif knotch_level > 0.3:
self.accel_knotch = 2
elif knotch_level > 0.1:
self.accel_knotch = 1
elif knotch_level > -0.05:
self.accel_knotch = 0
self.brake_knotch = 0
elif knotch_level > -0.25:
self.brake_knotch = 1
elif knotch_level > -0.35:
self.brake_knotch = 2
elif knotch_level > -0.45:
self.brake_knotch = 3
elif knotch_level > -0.55:
self.brake_knotch = 4
elif knotch_level > -0.7:
self.brake_knotch = 5
elif knotch_level > -0.8:
self.brake_knotch = 6
elif knotch_level > -0.9:
self.brake_knotch = 7
elif knotch_level > -1.0:
self.brake_knotch = 8
else:
self.brake_knotch = 9
if self.brake_knotch > 0:
self.accel_knotch = 0