X-Git-Url: https://scm.cri.minesparis.psl.eu/git/minwii.git/blobdiff_plain/346a9b8e1fcfe30629f0d1ee4675e9e8f89890cf..4c4732c6ed8cb0aaa70fb2d4c6e5a958868c5349:/src/pgu/fonts.py?ds=sidebyside
diff --git a/src/pgu/fonts.py b/src/pgu/fonts.py
deleted file mode 100644
index ab6f73d..0000000
--- a/src/pgu/fonts.py
+++ /dev/null
@@ -1,130 +0,0 @@
-"""Some handy font-like objects.
-
-
please note that this file is alpha, and is subject to modification in
-future versions of pgu!
-"""
-
-print 'pgu.fonts','This module is alpha, and is subject to change.'
-
-import pygame
-from pygame.locals import *
-
-class TileFont:
- """Creates an instance of the TileFont class. Interface compatible with pygame.Font
-
- TileFonts are fonts that are stored in a tiled image. Where the image opaque, it assumed that the font is visible. Font color is changed automatically, so it does not work with
- fonts with stylized coloring.
-
- TileFont(fname,size,hints,scale=None,sensitive=False)
-
-
- - size
- the dimensions of the characters
-
- hints
- a string of hints "abcdefg..."
-
- scale
- size to scale font to
-
- sensitive
- case sensitivity
-
- """
-
- def __init__(self,fname,size,hints,scale=None,sensitive=False):
-
- self.image = pygame.image.load(fname)
-
- w,h = self.image.get_width(),self.image.get_height()
- tw,th = size
- if not scale: scale = size
- self._size = size
- self.scale = scale
-
- self.chars = {}
- x,y = 0,0
- self.sensitive = sensitive
- if not self.sensitive: hints = hints.lower()
- for c in hints:
- if c not in ('\r','\n','\t'):
- img = self.image.subsurface(x,y,tw,th)
- self.chars[c] = img
- x += tw
- if x >= w: x,y = 0,y+th
-
- self.colors = {}
-
- def size(self,text):
- tw,th = self.scale
- return len(text)*tw,th
-
- def render(self,text,antialias=0,color=(255,255,255),background=None):
- size = self.size(text)
- scale = self.scale
- tw,th = self._size
- if background == None:
- s = pygame.Surface(size).convert_alpha()
- s.fill((0,0,0,0))
- else:
- s = pygame.Surface(size).convert()
- s.fill(background)
-
- if not self.sensitive: text = text.lower()
-
- if color not in self.colors: self.colors[color] = {}
- colored = self.colors[color]
-
- x,y = 0,0
- for c in text:
- if c in self.chars:
- if c not in colored:
- img = self.chars[c].convert_alpha()
- for yy in xrange(0,th):
- for xx in xrange(0,tw):
- r,g,b,a = img.get_at((xx,yy))
- if a > 128:
- img.set_at((xx,yy),color)
- colored[c] = img
- img = colored[c]
- if scale != (tw,th): img = pygame.transform.scale(img,scale)
- s.blit(img,(x,y))
- x += scale[0]
- return s
-
-
-class BorderFont:
- """a decorator for normal fonts, adds a border. Interface compatible with pygame.Font.
-
- BorderFont(font,size=1,color=(0,0,0))
-
-
- - size
- width of border; defaults 0
-
- color
- color of border; default (0,0,0)
-
- """
- def __init__(self,font,size=1,color=(0,0,0)):
-
- self.font = font
- self._size = size
- self.color = color
-
- def size(self,text):
- w,h = self.font.size(text)
- s = self._size
- return w+s*2,h+s*2
-
- def render(self,text,antialias=0,color=(255,255,255),background=None):
- size = self.size(text)
-
- if background == None:
- s = pygame.Surface(size).convert_alpha()
- s.fill((0,0,0,0))
- else:
- s = pygame.Surface(size).convert()
- s.fill(background)
-
- bg = self.font.render(text,antialias,self.color)
- fg = self.font.render(text,antialias,color)
-
- si = self._size
- dirs = [(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1),(1,0),(1,1)]
- for dx,dy in dirs: s.blit(bg,(si+dx*si,si+dy*si))
- s.blit(fg,(si,si))
-
- return s
-
-