本次学习的地址是: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")