Пользовательские события в Pygame

У меня возникли проблемы с запуском моих пользовательских событий. Мои регулярные мероприятия работают нормально, но я думаю, что я делаю что-то не так. Вот соответствующий код:

    evt = pygame.event.Event(gui.INFOEVENT, {'time':time,'freq':freq,'db':db})
    print "POSTING", evt
    pygame.event.post(evt)

   .... Later ....

    for event in pygame.event.get():
        print "GOT", event
        if event.type == pygame.QUIT:
            sys.exit()
        dispatcher.dispatch(event) 

gui.INFOEVENT = 101 кстати. Оператор печати POSTING срабатывает, но GOT никогда не показывает мое событие.

Спасибо!

2 ответа

Решение

Кажется, работает, когда я изменил код с:

INFOEVENT = 101

чтобы:

INFOEVENT = pygame.USEREVENT + x

где х - некоторое положительное целое число.

С http://www.pygame.org/docs/ref/event.html

Все события имеют идентификатор типа. Этот тип события находится между значениями NOEVENT и NUMEVENTS. Все пользовательские события могут иметь значение USEREVENT или выше. Рекомендуется убедиться, что ваши события соответствуют этой системе.

Я думаю, что ваш идентификатор события слишком велик.

Другие вопросы по тегам