PyGame

简介

技巧

代码段

   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     #填边
  16     if dr.height%sr.height != 0:
  17         hleft = dr.height%sr.height
  18         for j in range(dr.width/sr.width):
  19             dest.blit(source, (dr.x + j * sr.width, dr.y + dr.height-hleft), (sr.x, sr.y, sr.width, hleft))
  20         if dr.width%sr.width != 0:
  21             left = dr.width%sr.width
  22             dest.blit(source, (dr.x + dr.width - left, dr.y + dr.height-hleft), (sr.x, sr.y, left, hleft))

PyGame (last edited 2009-12-25 07:09:32 by localhost)