Проблема с использованием цифровых клавиш на клавиатуре для графической функции Python Turtle. - PullRequest
0 голосов
/ 15 мая 2019

У меня проблема с созданием команд turtle.onkey с использованием клавиш numpad 1-9 в качестве ввода.

Я посмотрел на источник и документацию, похоже, что ключи, взятые в качестве аргументов, исходят от tkinker.Я нашел список ключей из документации, а также этот список , и из того, что я могу собрать, аргумент должен быть «KP_4» для числа «4» на цифровой клавиатуре,но мой код не примет это.Я пробовал более традиционные клавиши, такие как «Влево» для левой стрелки, и они, кажется, работают нормально.Я также заглянул в документ о пигментной мысли, возможно, он был похож, но тот, который они перечисляют для numpad 4, тоже не сработал.(это был K_KP4)

def player_move_left():
    x = player_char.xcor()
    x -= player_max_move
    player_char.setx(x)
turtle.onkey(player_move_left,"K_P4")

Это должно взять координату x и вычесть величину перемещения, затем применить это число к x-координате переменной игрока.

* Решение предоставленов первом ответе *

1 Ответ

0 голосов
/ 15 мая 2019

Моя (OS X) система не различает «4» на основных клавишах и «4» на клавиатуре, обе перемещают черепаху.Тем не менее, он различает «Return» на основных клавишах и «KP_Enter» на клавиатуре, поэтому я буду использовать это в своем примере кода:

from turtle import Screen, Turtle

player_max_move = 10

def player_move_left():
    x = player_char.xcor() - player_max_move

    player_char.setx(x)

screen = Screen()

player_char = Turtle()

screen.onkey(player_move_left, "KP_Enter")  # vs "Return"
screen.listen()

screen.mainloop()

Поэкспериментируйте с приведенным выше, чтобы увидеть, можете ли вы получитьпонимание вашей проблемы (например, есть ли какой-то шаг, который вы пропустили?)

...