Думаю, вы уже обратили внимание на строчку импорта import direct.directbase.DirectStart, присутствующую в большинстве примеров. В описании "Hello World!" я пояснял, что данный импорт загружает необходимые модули панды и подготавливает окно к выводу изображения. На самом деле, DirectStart - это вспомогательный модуль, задача которого импортировать и создать экземпляр класса ShowBase. А вот ShowBase уже выполняет работу по инициализации. В принципе, весь глобальный модуль direct - надстройка, написанная на питоне и предназначенная для ускорения разработки и выполнения некоторых типовых операций, так что при необходимости можно выполнить всю инициализацию вручную. Однако мы пока изобретать велосипед не станем и будем пользоваться средствами, предоставленными разработчиками, поэтому описание в большинстве примеров и статей будет опираться на структуру движка, создаваемую ShowBase. ShowBase создаёт и заносит в __builtins__ следующие ключевые переменные: __builtin__.base = self __builtin__.render2d = self.render2d __builtin__.aspect2d = self.aspect2d __builtin__.pixel2d = self.pixel2d __builtin__.render = self.render __builtin__.hidden = self.hidden __builtin__.camera = self.camera __builtin__.loader = self.loader __builtin__.taskMgr = self.taskMgr __builtin__.jobMgr = self.jobMgr __builtin__.eventMgr = self.eventMgr __builtin__.messenger = self.messenger __builtin__.bboard = self.bboard __builtin__.run = self.run __builtin__.ostream = Notify.out() __builtin__.directNotify = directNotify __builtin__.giveNotify = giveNotify __builtin__.globalClock = globalClock __builtin__.vfs = vfs __builtin__.cpMgr = ConfigPageManager.getGlobalPtr() __builtin__.cvMgr = ConfigVariableManager.getGlobalPtr() __builtin__.pandaSystem = PandaSystem.getGlobalPtr()
Нахождение этих переменных в __builtins__ позволяет обращаться к ним напрямую. Наиболее используемые из них: base , render , render2d , camera , messenger и taskMgr. Некоторые вам уже были представлены, с другими познакомимся позже.
|