Tôi mới dùng Python, và tôi vừa tạo một trò chơi và một menu bằng Python. Câu hỏi là, sử dụng (raw_) input() yêu cầu tôi phải nhấn enter sau mỗi lần nhấn phím, tôi muốn thực hiện để nhấn mũi tên xuống sẽ ngay lập tức chọn mục menu tiếp theo hoặc di chuyển xuống trong trò chơi. Tại thời điểm này, nó đòi hỏi tôi phải thích loại "xuống" và sau đó nhấn Enter. Tôi cũng đã làm khá nhiều nghiên cứu, nhưng tôi không muốn tải xuống các mô-đun lớn (ví dụ: pygame) chỉ để đạt được một phương thức keyDown() duy nhất. Vì vậy, có cách nào dễ dàng hơn, mà tôi chỉ không thể tìm thấy?Phương pháp Python để đọc nhấn phím?
Chỉnh sửa: Chỉ cần phát hiện ra rằng msvcrt.getch()
sẽ thực hiện thủ thuật. Nó không phải keyDown(), nhưng nó hoạt động. Tuy nhiên, tôi không chắc chắn làm thế nào để sử dụng nó, hoặc, nó có vẻ khá lạ, bất kỳ trợ giúp ở đây? Đây là những gì tôi nhận được vào lúc này:
from msvcrt import getch
while True:
key = getch()
print(key)
Tuy nhiên, nó giữ cho tôi tất cả các byte vô nghĩa, ví dụ, mũi tên xuống là thế này:
b'\xe0'
b'P'
Và tôi không có ý tưởng làm thế nào để sử dụng chúng, tôi đã cố gắng để so sánh với chr() và thậm chí sử dụng ord() nhưng không thể thực sự làm bất kỳ so sánh. Những gì tôi đang cố gắng thực hiện cơ bản là:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
Và cứ thế ... Bạn có trợ giúp không?
Không phải là một trùng lặp. Đây là về các sự kiện keydown, không phải đầu vào ký tự đơn. – Deestan
Tôi có thể làm mờ giải pháp đa nền tảng ?? 'msvcrt' không có sẵn trên phân phối mac/linux của Python – cat