-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinput_handling.py
51 lines (43 loc) · 1.29 KB
/
input_handling.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
# File name: input_handling.py
# Author: Michael Chunko
# Python Version: 3.7
# This file contains the functions to handle user input
import tcod
def handle_keys(key):
# Fetch the character pressed
key_char = chr(key.c)
# Movement keys
if key.vk == tcod.KEY_RIGHT or key_char == 'd':
return {"move": (1, 0)}
elif key.vk == tcod.KEY_LEFT or key_char == 'a':
return {"move": (-1, 0)}
elif key.vk == tcod.KEY_UP or key_char == 'w':
return {"move": (0, -1)}
elif key.vk == tcod.KEY_DOWN or key_char == 's':
return {"move": (0, 1)}
# Inventory keys
if key.vk == tcod.KEY_1:
return {"use": 1}
elif key.vk == tcod.KEY_2:
return {"use": 2}
elif key.vk == tcod.KEY_3:
return {"use": 3}
elif key.vk == tcod.KEY_4:
return {"use": 4}
elif key.vk == tcod.KEY_5:
return {"use": 5}
# Other keys
if key.vk == tcod.KEY_ENTER:
# Toggle fullscreen
return {"fullscreen": True}
elif key.vk == tcod.KEY_ESCAPE:
# Exit
return {"exit": True}
elif key_char == 'r':
# Reset the game
return {"reset": True}
elif key_char == 'g':
# Generate a new map (preserve player stats)
return {"regenerate": True}
# No key pressed
return {}