forked from pygame/pygame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfonty.py
81 lines (61 loc) · 2.02 KB
/
fonty.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env python
""" pygame.examples.fonty
Here we load a .TTF True Type font file, and display it in
a basic pygame window.
Demonstrating several Font object attributes.
- basic window, event, and font management.
"""
import pygame as pg
def main():
# initialize
pg.init()
resolution = 400, 200
screen = pg.display.set_mode(resolution)
## pg.mouse.set_cursor(*pg.cursors.diamond)
fg = 250, 240, 230
bg = 5, 5, 5
wincolor = 40, 40, 90
# fill background
screen.fill(wincolor)
# load font, prepare values
font = pg.font.Font(None, 80)
text = "Fonty"
size = font.size(text)
# no AA, no transparency, normal
ren = font.render(text, 0, fg, bg)
screen.blit(ren, (10, 10))
# no AA, transparency, underline
font.set_underline(1)
ren = font.render(text, 0, fg)
screen.blit(ren, (10, 40 + size[1]))
font.set_underline(0)
a_sys_font = pg.font.SysFont("Arial", 60)
# AA, no transparency, bold
a_sys_font.set_bold(1)
ren = a_sys_font.render(text, 1, fg, bg)
screen.blit(ren, (30 + size[0], 10))
a_sys_font.set_bold(0)
# AA, transparency, italic
a_sys_font.set_italic(1)
ren = a_sys_font.render(text, 1, fg)
screen.blit(ren, (30 + size[0], 40 + size[1]))
a_sys_font.set_italic(0)
# Get some metrics.
print(f"Font metrics for 'Fonty': {a_sys_font.metrics(text)}")
ch = "\u3060"
msg = f"Font metrics for '{ch}': {a_sys_font.metrics(ch)}"
print(msg)
## #some_japanese_unicode = u"\u304b\u3070\u306b"
##some_japanese_unicode = unicode_('%c%c%c') % (0x304b, 0x3070, 0x306b)
# AA, transparency, italic
##ren = a_sys_font.render(some_japanese_unicode, 1, fg)
##screen.blit(ren, (30 + size[0], 40 + size[1]))
# show the surface and await user quit
pg.display.flip()
while True:
# use event.wait to keep from polling 100% cpu
if pg.event.wait().type in (pg.QUIT, pg.KEYDOWN, pg.MOUSEBUTTONDOWN):
break
pg.quit()
if __name__ == "__main__":
main()