pygame学习和python巩固——字体显示

来源:互联网 发布:http 文件 json 上传 编辑:程序博客网 时间:2024/05/16 14:00

本次学习的地址是:http://eyehere.net/2011/python-pygame-novice-professional-4/

本节主要是将如何显示文字。

方法一:用系统自带的字体

先创建一个font字体,

my_font = pygame.font.SysFont("arias",60)
第一个参数是字体名称,第二个参数是字的大小

可以通过

pygame.font.get_fonts()
查看系统自带的字体


方法二:用ttf或ttc文件

同样也要先创建一个font字体

my_font = pygame.font.Font('simsun.ttc',60)
simsun.ttc自行百度下载吧,我也是自己百度下载的,


创建font对象后,就可以利用render方法来创建一个surface对象了


第一个参数是要显示的文字,第二个参数为True是否开启抗锯齿,就是说True的话字体会比较平滑,不过相应的速度有一点点影响;

第三个参数是文字的颜色,第四个参数是背景色,如果省略则透明,都是以rgb形式表示


这里显示的都是英文,关于显示中文有几个问题,经过我的测试,在windows10上

利用系统自带的宋体,黑体等都不能显示中文,系统自带的simsunnsimsun可以显示中文,

或者利用simsun.ttc文件


关于原文中的这段代码,我自认为逻辑稍稍有点不正确,(指x-=2所放的位置)不同人的构想可能不同吧,这也不是什么大问题

x = 0y = (480 - text_surface.get_height())/2 background = pygame.image.load("sushiplate.jpg").convert() while True:    for event in pygame.event.get():        if event.type == QUIT:            exit()     screen.blit(background, (0, 0))     x -= 2  # 文字滚动太快的话,改改这个数字    if x < -text_surface.get_width():        x = 640 - text_surface.get_width()     screen.blit(text_surface, (x, y))     pygame.display.update()


我自己修改了这段:

x = 640y = (480-text_surface.get_height())/2while True:    for event in pygame.event.get():        if event.type == QUIT:            exit()    screen.blit(background,(0,0))    if x < -text_surface.get_width():        x = 640    screen.blit(text_surface,(x,y))    x -=0.5    pygame.display.update()


另外一个小函数的使用:保存为图片

pygame.image.save(name_surface,"name.png")



原创粉丝点击