Глобальная переменная не изменится - PullRequest
1 голос
/ 05 июня 2019

Я вызвал глобальное логическое значение в функции, но оно все еще вводит «если», хотя условие не выполняется.

Я искал, но не смог найти подобную проблему.

from Tkinter import *
import time

jumping = False
def jump(parts, high = 25): #to fix: can jump again in middle jump
    global jumping
    jumping = True
    for t in range(high*-3, 0, 1):
        w.move(parts[0], 0, 1)
        master.update()
        time.sleep(.0083)
    jumping = False
#thats the condition, which can be entered even while "jump()" is running.
if not jumping:
    master.bind('w', lambda x: jump(penguin_parts))

Я ожидал, что это не позволит мне нажимать 'w' и активировать "jump ()", когда функция находится в процессе, но на самом деле это позволяет мне, точно так же, как прыжки все еще ложны.

1 Ответ

2 голосов
/ 05 июня 2019

Там нет ничего, что могло бы отвязать ключ w от функции jump (). Как только он будет связан, он останется связанным, пока вы не освободите его.

from Tkinter import *
import time

jumping = False
def jump(parts, high = 25):
    if jumping == False:
        global jumping
        jumping = True
        for t in range(high*-3, 0, 1):
            w.move(parts[0], 0, 1)
            master.update()
            time.sleep(.0083)
        jumping = False
    master.bind('w', lambda x: jump(penguin_parts))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...