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

本次学习的地址是: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 = 0
y = (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 = 640
y = (480-text_surface.get_height())/2
while 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")



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值