Differences between revisions 5 and 6
Revision 5 as of 2005-07-28 15:59:12
Size: 1341
Editor: flyaflya
Comment:
Revision 6 as of 2005-07-28 16:07:49
Size: 2360
Editor: flyaflya
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
==== ini文件类 ==== ==== ini类 ====
一个好用的ini类,像使用dict一样简单
Line 39: Line 40:
}}}
Line 45: Line 46:
}}}
Line 46: Line 49:
----
["个人网页类"]
----
["个人网页类"]
=== blit_fill ===
用一个surface填充另一个surface
{{{
#!python

def fill_blit(source, dest, dRect, sRect = None ):
    if not sRect:
        sr = source.get_rect()
    else:
        sr = pygame.Rect(sRect)
    dr = pygame.Rect(dRect)
    
    for i in range(dr.height/sr.height):
        for j in range(dr.width/sr.width):
            dest.blit(source, (dr.x + j * sr.width, dr.y + i * sr.height), sr)
        if dr.width%sr.width != 0:
            left = dr.width%sr.width
            dest.blit(source, (dr.x + dr.width - left, dr.y + i * sr.height), (sr.x,sr.y,left,sr.height))
    
    if dr.height%sr.height != 0:
        hleft = dr.height%sr.height
        for j in range(dr.width/sr.width):
            dest.blit(source, (dr.x + j * sr.width, dr.y + dr.height-hleft), (sr.x, sr.y, sr.width, hleft))
        if dr.width%sr.width != 0:
            left = dr.width%sr.width
            dest.blit(source, (dr.x + dr.width - left, dr.y + dr.height-hleft), (sr.x, sr.y, left, hleft))

}}}

个人介绍

flyaflya,喜欢写程序,玩游戏。

python

代码段

ini类

一个好用的ini类,像使用dict一样简单

   1 import ConfigParser
   2 import string
   3 
   4 class IniSettings(dict):
   5     def __init__(self, filename):
   6         self.filename = filename
   7         self.__loadConfig()
   8     # Load the ini file into a dictionarie
   9     def __loadConfig(self):
  10         self.clear()
  11         cp = ConfigParser.ConfigParser()
  12         cp.read(self.filename)
  13         for sec in cp.sections():
  14             settings={}
  15             name = string.lower(sec)
  16             for opt in cp.options(sec):
  17                 settings[string.lower(opt)] = string.strip(cp.get(sec, opt))
  18             self.__setitem__(name,settings)
  19 
  20     def reload(self):
  21         """Reload the config file"""
  22         self.settings = self.__loadConfig()
  23     
  24     def save(self):
  25         """save the config file"""
  26         inifile = open(self.filename, 'w')
  27         for group in self.keys():
  28             inifile.write("\n["+group+"]\n")
  29             for key in self[group].keys():
  30                 inifile.write(str(key)+"="+str(self[group][key])+"\n")
  31 
  32 
  33 if __name__ == '__main__':
  34     settings = IniSettings('settings.ini')
  35     settings["t"]["tt"] = "ddd"
  36     settings.save()

pygame

blit_fill

用一个surface填充另一个surface

   1 def fill_blit(source, dest, dRect, sRect = None ):
   2     if not sRect:
   3         sr = source.get_rect()
   4     else:
   5         sr = pygame.Rect(sRect)
   6     dr = pygame.Rect(dRect)
   7     
   8     for i in range(dr.height/sr.height):
   9         for j in range(dr.width/sr.width):
  10             dest.blit(source, (dr.x + j * sr.width, dr.y + i * sr.height), sr)
  11         if dr.width%sr.width != 0:
  12             left = dr.width%sr.width
  13             dest.blit(source, (dr.x + dr.width - left, dr.y + i * sr.height), (sr.x,sr.y,left,sr.height))
  14     
  15     if dr.height%sr.height != 0:
  16         hleft = dr.height%sr.height
  17         for j in range(dr.width/sr.width):
  18             dest.blit(source, (dr.x + j * sr.width, dr.y + dr.height-hleft), (sr.x, sr.y, sr.width, hleft))
  19         if dr.width%sr.width != 0:
  20             left = dr.width%sr.width
  21             dest.blit(source, (dr.x + dr.width - left, dr.y + dr.height-hleft), (sr.x, sr.y, left, hleft))

flyaflya (last edited 2009-12-25 07:16:32 by localhost)