eventbroadcaster.py
上传用户:ghyvgy
上传日期:2009-05-26
资源大小:547k
文件大小:1k
源码类别:

其他游戏

开发平台:

Python

  1. # eventbroadcaster.py
  2. #
  3. # Implements the game event management API
  4. # for registering and unregistering for game
  5. # events, and dispatching events when they
  6. # occur.
  7. #
  8. # Author: Matthew Walker
  9. #         mwalker@softhome.net
  10. #
  11. import deferred
  12. import gameeventkeys
  13. class EventBroadcaster:
  14.   def __init__(self, objId):
  15.     self.id = objId
  16.     self.handlers = {}
  17.   def RegisterHandler(self, key, handlerRef):
  18.     key.RegisterHandler(self.handlers, handlerRef)
  19.   
  20.   def UnregisterHandler(self, key, handlerRef):
  21.     key.UnregisterHandler(self.handlers, handlerRef)
  22.   def PostGameEvent(self, key, delay, *args):
  23.     kArgs = (key,) + args
  24.     deferred.Call(self.id, 'Dispatch', kArgs, delay, None, None)
  25.   
  26.   def Dispatch(self, key, *args):
  27.     #print 'Dispatch( %s, %s )' % (key, args)
  28.     handlerList = 
  29.       gameeventkeys.GetHandlers(key, self.handlers)
  30.     for handler in handlerList:
  31.       apply(handler, (key,) + args)