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
|