<Timer (Thread-1, запущен 11268)> Python, проблема threading.Timer - PullRequest
0 голосов
/ 12 апреля 2019

Мне кажется, что мне не хватает некоторых ключевых знаний о том, как работает многопоточность. Таймер работает.До сих пор я пытался найти какой-нибудь код, который поможет мне понять аргументы и kwargs для Timer и других, но мне не повезло.

Я пытаюсь учиться, создавая некоторый код, который будет похож на механику Wow Casting.Как вы можете видеть, это очень примитивно, но сейчас я сталкиваюсь с этой ошибкой несколько раз.Может кто-нибудь уточнить, в чем проблема с моим пониманием потоков. Так что я могу использовать его в будущем без каких-либо колебаний?Заранее спасибо.

from threading import Timer

def scope(x):
    if x<0:
        print("Has to be between 1 and 0")
    elif x>1:
        print("Has to be between 1 and 0")
    else:
        return x

def damage(spp,res):
    scope(res)
    c = spp - spp*res
    return c

def fire_projectile():
    print("Projectile fired!")
def casting_time(n_time,haste):
    #Every haste unit deducts the casting time by 0.001 seconds.
    general_time = n_time - haste/1000.00
    print(general_time)
    c = Timer(general_time, lambda: fire_projectile())
    c.start()
    return c
    #The timer is here to count down the time needed in order for projectile to get launched.#
spells = {'Fireball': (250, 2), 'Pyrobalst' : (400, 3), 'Flamestrike': (190, 1.5)}
#First value is the natural damage of the spell. Second value is the casting time w/o haste.
classes = {'Death Knight': (0.6, 500), 'Mage': (0.2, 1200), "Priest": (0.4, 800)}
#First value is resistance to fire damage. Second value is haste.


print(damage(spells['Fireball'][0],classes['Death Knight'][0]))
print(casting_time(spells['Fireball'][1], classes['Mage'][1]))

После того, как я написал последние две строки, кажется, что первая работает довольно хорошо, но у второй есть некоторые проблемы.

Вместо: 100,0 0,8 Снаряд запущен!

Процесс завершен с кодом выхода 0

Я получил: 100,0 0,8 Таймер (поток-1, запущен 11268) Снаряд запущен!

Процесс завершен скод выхода 0

...