def uhOhAnError(status):
global threads
if sounds:
sounds['Indigo.wav'].play()
for thread in threads:
thread.stop()
print "Uh-oh. An error occurred."
Config = ConfigParser.ConfigParser()
Config.read("enderX.ini")
Assets = enderAPI.ConfigSectionMap(Config, "Assets")
Textures = enderAPI.ConfigSectionMap(Config, "Textures")
System = enderAPI.ConfigSectionMap(Config, "System")
Fonts = enderAPI.ConfigSectionMap(Config, "Fonts")
texturesFolder = os.path.join(Assets['assetsfolder'], Textures['texturesfolder'])
try:
SCREEN_WIDTH = int(System['screenwidth'])
SCREEN_HEIGHT = int(System['screenheight'])
except Exception:
print "Error while getting screen width & height from config file. Reverting to 640x480"
SCREEN_WIDTH, SCREEN_HEIGHT = 640, 480
size = [SCREEN_WIDTH, SCREEN_HEIGHT]
screen = pygame.display.set_mode(size)
pygame.display.set_caption(" ")
clockError = pygame.time.Clock()
foobar = True
fooBar = pygame.image.load(os.path.join(texturesFolder,'fatalerror.png'))
screenCorners = [pygame.image.load(os.path.join(texturesFolder, 'menubar', 'cornerL_b.png')), pygame.image.load(os.path.join(texturesFolder, 'menubar', 'cornerR_b.png')), pygame.image.load(os.path.join(texturesFolder, 'menubar', 'cornerL_c.png')), pygame.image.load(os.path.join(texturesFolder, 'menubar', 'cornerR_c.png'))]
#uptime = int(calendar.timegm(time.gmtime()))-int(psutil.boot_time())
uptime = getUptime()
errormsg = ["Fatal Error",""] + traceback.format_exc().splitlines() + ["", "System info:",
"Python %d.%d.%d" % (sys.version_info[0], sys.version_info[1], sys.version_info[2]), "Pygame %s" % pygame.ver, "SDL %d.%d.%d" % pygame.get_sdl_version(), platform.platform(),
"system: %s" % str(platform.system()), "node: %s" % str(platform.node()), "release: %s" % str(platform.release()), "version: %s" % str(platform.version()), "machine: %s" % str(platform.machine()),
"processor: %s" % str(platform.processor()), "", "System uptime in seconds: %d" % uptime, "System status: %s" % status]
font = pygame.font.Font(os.path.join(Assets['assetsfolder'], Fonts['fontsfolder'], '16', 'ScratchySans.ttf'), 16)
while(foobar): # Keep window open
events = pygame.event.get() # Get events
for event in events:
if event.type == pygame.QUIT: # Goodbye
foobar = False
screen.fill(BG_COLOR)
screen.blit(fooBar, (SCREEN_WIDTH/2-64,SCREEN_HEIGHT/2-64))
yPos = 0
for msg in errormsg:
screen.blit(font.render(msg, False, (255,255,255), (0,0,0)), (0,yPos))
yPos+=font.size(msg)[1]
screen.blit(screenCorners[0], (0,SCREEN_HEIGHT-5))
screen.blit(screenCorners[1], (SCREEN_WIDTH-5,SCREEN_HEIGHT-5))
screen.blit(screenCorners[2], (0,0))
screen.blit(screenCorners[3], (SCREEN_WIDTH-5,0))
clockError.tick(10)
pygame.display.flip()
pygame.quit()
sys.exit()
评论列表
文章目录