Python pygame 模块,freetype() 实例源码

我们从Python开源项目中,提取了以下18个代码示例,用于说明如何使用pygame.freetype()

项目:Projects    作者:it2school    | 项目源码 | 文件源码
def __init__(self, title):
        pygame.display.set_caption(title)
        self.screen.fill(Color('white'))
        pygame.display.flip()

        pygame.freetype.init()
        self.font = pygame.freetype.Font(None, 20)
        self.font.origin = True
        self.ascender = int(self.font.get_sized_ascender() * 1.5)
        self.descender = int(self.font.get_sized_descender() * 1.5)
        self.line_height = self.ascender - self.descender

        self.write_lines("'q', ESCAPE or close this window to quit\n"
                         "SPACE to play/pause\n"
                         "'r' to rewind\n"
                         "'f' to faid out over 5 seconds\n", 0)
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def draw(screen, etc):
    global string, word, color, scrollX, gs, text, size

    size = int(etc.knob1*200)+1
    color = etc.color_picker()
    font = pygame.freetype.Font(etc.mode_root + "/font.ttf", size)
    (text, textpos1) = font.render(string, color)

    if etc.audio_trig or etc.midi_note_new : 
        string = unicode(subjList[random.randint(0,3)]) + unicode(verbList[random.randint(0,5)]) +unicode(artList[random.randint(0,3)]) + unicode(adjList[random.randint(0,4)]) +unicode(nounList[random.randint(0,6)])
        gs = 1
        scrollX = 1280 + text.get_width() 


    if gs == 1 and size > 0 :
        font = pygame.freetype.Font(etc.mode_root + "/font.ttf", size)
        #audio movement
        textpos1 =(scrollX - (text.get_width()+1), (int(600 * etc.knob2)) )

    screen.blit(text, textpos1)
    scrollX = scrollX - (etc.knob3*40) + 1
    if scrollX < 1 : scrollX = 1
项目:Projects    作者:it2school    | 项目源码 | 文件源码
def test_freetype_Font_path(self):
        self.assertEqual(self._TEST_FONTS['sans'].path, self._sans_path)
        self.assertRaises(AttributeError, getattr, nullfont(), 'path')

    # This Font cache test is conditional on freetype being built by a debug
    # version of Python or with the C macro PGFT_DEBUG_CACHE defined.
项目:Projects    作者:it2school    | 项目源码 | 文件源码
def test_issue_243(self):
        """Issue Y: trailing space ignored in boundary calculation"""

        # Issue #243: For a string with trailing spaces, freetype ignores the
        # last space in boundary calculations
        #
        font = self._TEST_FONTS['fixed']
        r1 = font.get_rect(" ", size=64)
        self.assertTrue(r1.width > 1)
        r2 = font.get_rect("  ", size=64)
        self.assertEqual(r2.width, 2 * r1.width)
项目:neuroblast    作者:ActiveState    | 项目源码 | 文件源码
def loadfont(size):
    global font
    font = pygame.freetype.Font('font/De Valencia (beta).otf', size)


# Utility functions
项目:Arkon    作者:UnkDevE    | 项目源码 | 文件源码
def font_data(data_dir):
    return resource_handler(data_dir,'.ttf', pygame.freetype.Font)
项目:PythonOS    作者:furmada    | 项目源码 | 文件源码
def __init__(self, path="res/RobotoCondensed-Regular.ttf", minSize=10, maxSize=30):
            self.path = path
            curr_size = minSize
            self.sizes = {}
            self.ft_support = True
            self.ft_sizes = {}
            while curr_size <= maxSize:
                if self.ft_support:
                    try:
                        self.ft_sizes[curr_size] = pygame.freetype.Font(path, curr_size)
                    except:
                        self.ft_support = False
                self.sizes[curr_size] = pygame.font.Font(path, curr_size)
                curr_size += 1
项目:PythonOS    作者:furmada    | 项目源码 | 文件源码
def get(self, size=14, ft=False):
            if ft and self.ft_support:
                if size not in self.ft_sizes:
                    self.ft_sizes[size] = pygame.freetype.Font(self.path, size)
                return self.ft_sizes[size]
            else:
                if size not in self.sizes:
                    self.sizes[size] = pygame.font.Font(self.path, size)
                return self.sizes[size]
项目:PythonOS    作者:furmada    | 项目源码 | 文件源码
def __init__(self, position, text, color=DEFAULT, size=DEFAULT, **data):
            #Defaults are "item" and 14.
            color, size = GUI.Component.default(color, state.getColorPalette().getColor("item"), size, 14)
            self.text = text
            self._originalText = text
            self.size = size
            self.color = color
            self.font = data.get("font", state.getFont())
            self.use_freetype = data.get("freetype", False)
            self.responsive_width = data.get("responsive_width", True)
            data["surface"] = self.getRenderedText()
            super(GUI.Text, self).__init__(position, **data)
项目:PythonOS    作者:furmada    | 项目源码 | 文件源码
def __init__(self, position, text, color=DEFAULT, size=DEFAULT, justification=DEFAULT, **data):
            #Defaults are "item", and 0 (left).
            color, size, justification = GUI.Component.default(color, state.getColorPalette().getColor("item"), size, 14,
                                                         justification, 0)
            self.justification = justification
            self.color = color
            self.size = size
            self.text = text if type(text) == str or type(text) == unicode else str(text)
            self.textSurface = None
            self.font = data.get("font", state.getFont())
            self.use_freetype = data.get("freetype", False)
            super(GUI.MultiLineText, self).__init__(position, **data)
            self.refresh()
            if self.width > state.getGUI().width:
                self.width = state.getGUI().width
项目:PythonOS    作者:furmada    | 项目源码 | 文件源码
def __init__(self, position, text, bgColor=DEFAULT, textColor=DEFAULT, textSize=DEFAULT, **data):
            #Defaults are "darker:background", "item", and 14.
            bgColor, textColor, textSize = GUI.Component.default(bgColor, state.getColorPalette().getColor("darker:background"),
                                  textColor, state.getColorPalette().getColor("item"),
                                  textSize, 14)
            self.textComponent = GUI.Text((0, 0), text, textColor, textSize, font=data.get("font", state.getFont()), freetype=data.get("freetype", False))
            self.paddingAmount = data.get("padding", 5)
            if "width" not in data: data["width"] = self.textComponent.computedWidth + (2 * self.paddingAmount)
            if "height" not in data: data["height"] = self.textComponent.computedHeight + (2 * self.paddingAmount)
            super(GUI.Button, self).__init__(position, **data)
            self.SKIP_CHILD_CHECK = True
            self.textComponent.setPosition(GUI.getCenteredCoordinates(self.textComponent, self))
            self.backgroundColor = bgColor
            self.addChild(self.textComponent)
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def setup(screen, etc):
    pygame.freetype.init()
    pass
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def draw(screen, etc) : 
    global xpos, ypos, xdirection, ydirection, rIght, bOttom, lEft, tOp, unistr, word, coloryo, avg

    color = etc.color_picker()
    auDio = etc.audio_peak / 128
    if auDio > 255 : auDio = 255

    coloryo = (auDio,color[1],color[2])

    size = int(100*etc.knob3)+1
    font = pygame.freetype.Font(etc.mode_root + "/font.ttf", size)

    unistr = unicode(stringList[word])

    (text, textpos) = font.render(unistr, (coloryo))

    xspeed = int(etc.knob1 * 50) + 1
    yspeed = int(etc.knob2 * 50) + 1

    xpos = xpos + (xspeed * xdirection)
    ypos = ypos + (yspeed * ydirection) 

    rIght = xpos + text.get_width()
    bOttom = ypos + text.get_height()
    lEft = xpos
    tOp = ypos

    screen.blit(text, (xpos,ypos))

    if rIght >= 1280 or lEft <= 0  : 
        xdirection *= -1
        word = (word+1)%7

    if bOttom >= 720 or tOp <= 0  : 
        ydirection *= -1
        word = (word+1)%7
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def setup(screen, etc):
    pygame.freetype.init()
    pass
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def setup(screen, etc):
    pygame.freetype.init()
    pass
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def setup(screen, etc):
    global words
    pygame.freetype.init()
    spanish_words = imp.load_source('spanish',etc.mode_root +  '/spanish.py')
    words = spanish_words.words
    pass
项目:ETC_Modes    作者:critterandguitari    | 项目源码 | 文件源码
def draw(screen, etc):
    global words, word1, word2, count, word_index

    color = etc.color_picker()
    size = etc.knob1 * 300 + 10
    x = etc.knob2 * 400
    y = etc.knob3 * 400
    font = pygame.freetype.Font(etc.mode_root + "/font.ttf", size)

    if etc.audio_trig or etc.midi_note_new : 
        count += 1
        count %= 3
        if count == 1 :
            word_index = random.randint(0,len(words))
            word1 = unicode(words[word_index][1])
        if count == 2 :
            word2 = unicode(words[word_index][0])

    if (count == 0) :
        pass

    if (count == 1) :
        (text, textpos1) = font.render(word1, color)
        textpos1 =(x, y)
        screen.blit(text, textpos1)

    if (count == 2) :
        (text, textpos1) = font.render(word1, color)
        textpos1 =(x, y)
        screen.blit(text, textpos1)
        (text, textpos1) = font.render(word2, color)
        textpos1 =(x, y + size)
        screen.blit(text, textpos1)
项目:Projects    作者:it2school    | 项目源码 | 文件源码
def test_issue_242(self):
        """Issue #242: get_rect() uses 0 as default style"""

        # Issue #242: freetype.Font.get_rect() ignores style defaults when
        #             the style argument is not given
        #
        # The text boundary rectangle returned by freetype.Font.get_rect()
        # should match the boundary of the same text rendered directly to a
        # surface. This permits accurate text positioning. To work properly,
        # get_rect() should calculate the text boundary to reflect text style,
        # such as underline. Instead, it ignores the style settings for the
        # Font object when the style argument is omitted.
        # 
        # When the style argument is not given, freetype.get_rect() uses
        # unstyled text when calculating the boundary rectangle. This is
        # because _ftfont_getrect(), in _freetype.c, set the default
        # style to 0 rather than FT_STYLE_DEFAULT.
        #
        font = self._TEST_FONTS['sans']

        # Try wide style on a wide character.
        prev_style = font.wide
        font.wide = True
        try:
            rect = font.get_rect('M', size=64)
            surf, rrect = font.render(None, size=64)
            self.assertEqual(rect, rrect)
        finally:
            font.wide = prev_style

        # Try strong style on several wide characters.
        prev_style = font.strong
        font.strong = True
        try:
            rect = font.get_rect('Mm_', size=64)
            surf, rrect = font.render(None, size=64)
            self.assertEqual(rect, rrect)
        finally:
            font.strong = prev_style

        # Try oblique style on a tall, narrow character.
        prev_style = font.oblique
        font.oblique = True
        try:
            rect = font.get_rect('|', size=64)
            surf, rrect = font.render(None, size=64)
            self.assertEqual(rect, rrect)
        finally:
            font.oblique = prev_style

        # Try underline style on a glyphless character.
        prev_style = font.underline
        font.underline = True
        try:
            rect = font.get_rect(' ', size=64)
            surf, rrect = font.render(None, size=64)
            self.assertEqual(rect, rrect)
        finally:
            font.underline = prev_style