Skip to content

Commit 6c71912

Browse files
committed
changed keyboard controlls, v0.6
1 parent d5a52bf commit 6c71912

File tree

8 files changed

+46
-42
lines changed

8 files changed

+46
-42
lines changed

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Tetris
22
Python & pygame
33

4-
![v0.4 screenshot](img/0.4-alpha.png?raw=true "v0.4 screenshot")
4+
![v0.6 screenshot](img/0.6-alpha.png?raw=true "v0.6 screenshot")
55

66

7-
supporting XBOX 360 For Windows (Controller)
7+
recommended XBOX 360 For Windows (Controller)
88

99
pygame 1.9.6 required
1010

@@ -13,6 +13,7 @@ Controls:
1313
Move left - Arrow left (D-pad left)
1414
Move right - Arrow right (D-pad right)
1515
Move down - Arrow down (D-pad down)
16-
Rotate clockwise - Arrow up/X (A)
17-
Hard drop - Space (D-pad up) (disabled)
18-
16+
Rotate clockwise - Arrow up/X (A)
17+
Menu enter - Enter (A)
18+
Menu back - Escape (B)
19+
Pause - Escape (Start)

img/0.6-alpha.png

67.1 KB
Loading

src/main.py

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ def new_player():
5050
if score_list.is_enough(stats.score.score):
5151
score_list.add_score(start_menu.player.text, stats.score.score)
5252
menu.update_score()
53-
# state = GameState.GAME_OVER_RECORD
54-
# else:
5553
return
5654
shade.shade = type(player)()
5755
shade.update_pos(player)
@@ -68,7 +66,7 @@ def draw():
6866
global state
6967
window.fill(s.colors["Background"])
7068
if state == GameState.PLAY or state == GameState.PAUSE or \
71-
state == GameState.GAME_OVER_RECORD or state == GameState.GAME_OVER:
69+
state == GameState.GAME_OVER:
7270
shade.draw()
7371
player.draw()
7472
next_indicator.next_one.draw()
@@ -94,20 +92,7 @@ def draw():
9492
if event.type == pygame.QUIT:
9593
run = False
9694

97-
if state == GameState.GAME_OVER_RECORD:
98-
if controller.just_pressed["Start"]:
99-
to_draw = True
100-
if score_list.is_enough(stats.score.score):
101-
if score_list.add_score(ui.score_plate.get_name(), stats.score.score) == 1:
102-
menu.update_score()
103-
state = GameState.MENU
104-
next_indicator.change()
105-
game_over()
106-
new_player()
107-
continue
108-
if ui.score_plate.update():
109-
to_draw = True
110-
elif state == GameState.MENU:
95+
if state == GameState.MENU:
11196
if menu.change_state():
11297
to_draw = True
11398
if controller.just_pressed["Start"]:
@@ -128,15 +113,15 @@ def draw():
128113
state = GameState.MENU
129114

130115
elif state == GameState.GAME_OVER:
131-
if controller.just_pressed["Start"]:
116+
if controller.just_pressed["Start"] or controller.just_pressed["Pause"]:
132117
to_draw = True
133118
state = GameState.MENU
134119
next_indicator.change()
135120
game_over()
136121
new_player()
137122
continue
138123
elif state == GameState.PLAY:
139-
if controller.just_pressed["Start"]:
124+
if controller.just_pressed["Pause"]:
140125
to_draw = True
141126
state = GameState.PAUSE
142127
p_event = player.update()
@@ -146,7 +131,7 @@ def draw():
146131
new_player()
147132
to_draw = True
148133
elif state == GameState.PAUSE:
149-
if controller.just_pressed["Start"]:
134+
if controller.just_pressed["Pause"]:
150135
to_draw = True
151136
state = GameState.PLAY
152137

src/ui/menu.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ def change_state(self):
5959
if self.btn == self.ButtonPos.SCORE:
6060
self.state = self.MenuState.SCORE
6161
self.btn = None
62-
elif self.state == self.MenuState.SCORE:
62+
return 1
63+
elif controller.just_pressed["Back"]:
64+
if self.state == self.MenuState.SCORE:
6365
self.state = self.MenuState.MAIN
6466
self.btn = self.ButtonPos.SCORE
67+
return 1

src/ui/name_input.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ def __init__(self):
3535
x0 = 0
3636
y0 = 0
3737
for letter in LETTERS:
38-
x = x0 * 15 * s.scale + 180
39-
y = y0 * 20 * s.scale + 150
40-
self.buttons.append(Button(letter, letter, 7 * s.scale, x, y, self.plate))
38+
x = x0 * 15 * s.scale + 90 * s.scale
39+
y = y0 * 20 * s.scale + 75 * s.scale
40+
self.buttons.append(Button(letter, letter, 14, x, y, self.plate))
4141
x0 += 1
4242
if x0 == 9:
4343
x0 = 0
@@ -47,7 +47,7 @@ def update(self):
4747
to_draw = False
4848
if self.move(controller.get_direction()) != 0:
4949
to_draw = True
50-
if controller.just_pressed["Rotate"]:
50+
if controller.just_pressed["Start"]:
5151
self.add_letter()
5252
to_draw = True
5353
elif controller.just_pressed["Clear"]:

src/ui/start_menu.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def update(self):
3636
:return 9: back
3737
"""
3838
if self.name_input_enabled:
39-
if controller.just_pressed["Start"]:
39+
if controller.just_pressed["Pause"]:
4040
name = self.name_input.get_name()
4141
save.table.change_name(name, self.name_index)
4242
self.player.text = name
@@ -91,6 +91,6 @@ def draw(self):
9191

9292
if self.name_input_enabled:
9393
self.name_input.draw()
94-
95-
for i in self.arrows:
96-
i.draw()
94+
else:
95+
for i in self.arrows:
96+
i.draw()

src/utils/controller.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
gamepad = None
55

66
pressed = {"Start": False,
7+
"Pause": False,
8+
"Back": False,
79
"Rotate": False,
810
"Left": False,
911
"Right": False,
@@ -22,6 +24,8 @@ def get_keys():
2224
global just_pressed
2325
global keys
2426
just_pressed = {"Start": False,
27+
"Pause": False,
28+
"Back": False,
2529
"Rotate": False,
2630
"Left": False,
2731
"Right": False,
@@ -31,14 +35,30 @@ def get_keys():
3135
"Clear": False}
3236
keys = pygame.key.get_pressed()
3337
joy_direct = gamepad.get_hat()
34-
# Start/Pause the game
35-
if keys[pygame.K_ESCAPE] or gamepad.is_pause_pressed():
38+
# Start the game
39+
if keys[pygame.K_RETURN] or gamepad.is_A_pressed():
3640
if not pressed["Start"]:
3741
just_pressed["Start"] = True
3842
pressed["Start"] = True
3943
else:
4044
pressed["Start"] = False
4145

46+
# Pause the game
47+
if keys[pygame.K_ESCAPE] or gamepad.is_start_pressed():
48+
if not pressed["Pause"]:
49+
just_pressed["Pause"] = True
50+
pressed["Pause"] = True
51+
else:
52+
pressed["Pause"] = False
53+
54+
# Back button
55+
if keys[pygame.K_ESCAPE] or gamepad.is_B_pressed():
56+
if not pressed["Back"]:
57+
just_pressed["Back"] = True
58+
pressed["Back"] = True
59+
else:
60+
pressed["Back"] = False
61+
4262
# Rotate clockwise
4363
if keys[pygame.K_UP] or keys[pygame.K_x] or gamepad.is_A_pressed():
4464
if not pressed["Rotate"]:
@@ -96,11 +116,6 @@ def get_keys():
96116
pressed["Clear"] = False
97117

98118

99-
def is_start_pressed():
100-
if keys[pygame.K_SPACE] or gamepad.is_start_pressed():
101-
return True
102-
103-
104119
def get_direction():
105120
joy_direct = gamepad.get_hat()
106121
if keys[pygame.K_DOWN] or joy_direct == (0, 1):

src/utils/gamepad_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def get_hat(self):
1717
return self.joystick.get_hat(0)
1818
return 0, 0
1919

20-
def is_pause_pressed(self):
20+
def is_start_pressed(self):
2121
if self.enabled:
2222
return self.joystick.get_button(7)
2323

0 commit comments

Comments
 (0)