Что такое менеджер задач и для чего он нужен? Предположим,что в Вашу игру нужно добавить какую-нибудь функцию,которая будет выполняться постоянно,например искусственный интеллект врагов или проверку столкновений.Менеджер задач Panda3D позволяет добавлять эти функции для постоянного выполнения или же удалять их.Функция,которая добавляется в менеджер задач называется задачей или заданием(Task).Она должна обязательно иметь в описании параметр task и возвращать одно из ниже перечисленных значений:   Task.done - функция выполнилась и удаляется из списка задач.   Task.cont - функция выполнилась и она передаёт управление скриптом следующей по списку функции,но при этом сама она из списка НЕ УДАЛЯЕТСЯ   Task.again - повторяет функцию с той же самой задержкой,что и при вызове.   None - тоже самое,что и Task.done  Для добавления или удаления функции в список задач используется глобальный объект taskMgr и его методы add и remove.   Параметр task,который функция для выполнения требует по умолчанию,имеет следующие свойства:   task.time Дробное число,характеризующее прошедшее время с первого запуска этой функции(в секундах);   task.frame Целое число,характеризующее количество кадров,прошедших с момента добавления функции.Может иметь значение 0 или 1;   task.id Целое число,обозначающее уникальный идентификатор задания,присвоенным ему менеджером задач;   task.name Имя задания,присвоенное этой функции.   Для импорта модуля менеджера задач необходима строка   from direct.task import Task   Простейший способ добавления функции:     def MyFunc(task):     mysphere.setH(task.time) #Вращаем сферу в зависимости от прошедшего времени     return Task.cont #продолжаем выполнение скрипта  taskMgr.add(MyFunc,'My function') 
     При желании мы можем её удалить так:   taskMgr.remove('My function')   При добавлении функции также можно указывать кортеж extraArgs[a,b,c,..], в котором указываются дополнительные параметры,передаваемые функции и предусмотренные пользователем.Например:     def AI(task,obj):     if obj.lifes<=0: #Если у обрабатываемого объекта закончились жизни,       obj.death() #то он умирает       return Task.done #и обработка его состояния убирается из списка задач     return Task.cont #продолжаем выполнение скрипта(если до этого функция не возвращала никакого значения)  taskMgr.add(AI,'AI',extraArgs=[player]) 
     Также Panda3D позволяет добавлять задания,которые выполняются с задержкой после рендера кадра, но об этом позже... 
		
	 
  Источник: http://panda3d.org/wiki/index.php/Tasks |