2017-03-14 59 views
0

我有一个Python/Pygame模块,其结构如下。这被保存为一个名为text_factory.py的python文件。导入的Python模块没有初始化内部导入

import pygame, sys, os 
from pygame.locals import KEYDOWN, K_ESCAPE, RLEACCEL 

class Text_Factory(pygame.sprite.Sprite): 
    def __init__(self, posx = None, posy = None, font = None, fontsize = 100, colour = (255, 50, 64), text1 = "Level ", text2 = " Complete!", level = 1, frames = 30, pause = 1500, slowdown = 30, fade = False, rotate = None): 

     pygame.sprite.Sprite.__init__(self) 

     self.screen = pygame.display.get_surface() 

     if self.screen == None: 

      if sys.platform == 'win32' or sys.platform == 'win64': 
       #os.environ['SDL_VIDEO_CENTERED'] = '0'# center of screen 
       os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (10, 30)#top left corner 

      self.screen =pygame.display.set_mode((800, 600), 1, 32) # demo screen size 

      back = pygame.image.load("D:\\IMAGES\\space_11.jpg").convert() 
      self.screen.blit(back, (0, 0)) 

     # the subsurface is a rect 
     self.subsurface = None #self.screen.subsurface(0, 0, self.screen.get_width(), self.screen.get_height()).convert_alpha() 
     self.background = (0, 0, 0) 
     self.alpha = 255 
     if posx == None: 
      self.posx = self.screen.get_width()/2 
     else: 
      self.posx = posx 
     if posy == None: 
      self.posy = self.screen.get_height()/2 
     else: 
      self.posy = posy 
     self.center = (self.posx, self.posy) 

等等,等等

当我将其导入从另一个Python文件像下面

from text_factory import * 

tf = Text_Factory() 
tf.default() # this is a function in the class to demnstrate the code 

the program stops running with the pygame.error: font not initialized message.

显然Pygame的模块没有加载和初始化。当代码被调用并运行上面所示的方式时,pygame,sys,os和其他import是否应该运行?当我导入一个python模块text_factory时,它不应该运行内部导入吗?如果不是如何做到的?

回答

0

我的坏话! 我在课堂内根本没有做pygame.init()。一旦我插入,一切正常。

相关问题