[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Font height



andrew baker wrote:
Well, y'all set the size when you initialize the font, innit?  I have this as a variable, and I reference that variable as an offset other places where I blit text written in that font.

EX:
out_text = []
while len(text) > width:
        if text[width] == ' ':
                    out_text.append(text[:width])
                    text = text[width:]
        else:
                    new_width = text.rfind(' ', 0, width)
                    if new_width == -1:
                              new_width = width
                    out_text.append(text[:new_width])
                              text = text[new_width+1:]
out_text.append(text)

for line in out_text:
            readout = gfx.font.render(line, 1, (0,0,0,255))
            self.display_menu.blit(readout, (world.font_size, height*world.font_size))
            height+=1   

On 5/9/06, Mike Wyatt <mwyatt@xxxxxxxxx> wrote:
Is there any way to manually adjust the height of a font rendered in
PyGame?  Ascent and descent are set to values that are quite a bit
larger than I would prefer, resulting in my text being drawn roughly 40%
lower than the given position.  There are no setters for those
attributes (only getters).  I could manually move the rendered text a
bit higher on the display, but that is a bit hacky and probably won't
work quite right for any given height value.

Thoughts?



--
Andrew Ulysses Baker
"failrate"

That's not really my problem.  I'm talking about the extra spacing added above and below the font when it is rendered.  Take a look at the attached screenshot.  I render the text "Xj()~'" in the upper-left corner at position (0,0), with a height of 24.  The text is drawn 54 pixels in height, but font.size() returns (46,35), resulting in my font being drawn 9 pixels below the desired positon.  Drawing a larger font results in the font being drawn even lower

Here are some other results:

Desired size[1] True Pixel
8 6 12
16 14 23
20 19 29
32 29 45
35 33 50
60 55 85
80 74 112
100 93 140
200 185 280
Desired = Height value passed to Font constructor
size[1] = height value in tuple returned by font.size()
True Pixel = True height of the rendered font in pixels

PNG image