pygame的字体画不出来_pygame文字绘制

pygame的文字绘制

import sys

import pygame

import pygame.freetype

pygame.init()

size=width,height=640,480 # 设置窗口的大小

# print(pygame.display.Info())

screen=pygame.display.set_mode(size) # 将窗口显示到屏幕上

# print(pygame.display.Info()) # 在set_mode前后调用是有区别的

pygame.display.set_caption("Pygame文字绘制")

# color=(0,0,0) # 设置刷新的颜色

black=0,0,0

GOLD=255,251,0

pos=[230,160]

# 引入字体类型

f1=pygame.freetype.Font(r"C:\Windows\Fonts\simsun.ttc",36)

f1rect=f1.render_to(screen,pos,"世界和平",fgcolor=GOLD,size=50)

"""

这里的ball可以理解为surface对象,对象.get_rect()可以形成一个和对象内切的一个对象

这样就可以方便的使用坐标了

"""

fps=300

fclock=pygame.time.Clock()

speed=[1,1] # 设置移动的X轴,Y轴的矩形 左上角的坐标是(0,0)

bgcolor=pygame.Color("black")

# 定义一个参数返回0-255之间的一个整数

# a大于255返回255,小于255大于0返回a,小于0返回0

def RGBChannel(a):

return 0 if a<0 else(255 if a>255 else(int(a)))

# clock=pygame.time.Clock() # 设置时钟

"""

运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭,如果让窗口一直显示,需要

使用while True让程序一直执行,此外,还需要设置关闭按钮

"""

while True:

# clock.tick(60) # 每秒执行60次

# 检查事件

for event in pygame.event.get():

if event.type==pygame.QUIT: # 如果单机关闭窗口,则退出

sys.exit()

elif event.type==pygame.VIDEORESIZE:

size=width,height=event.size[0],event.size[1]

screen=pygame.display.set_mode(size,pygame.RESIZABLE)

if pos[0]<0 or pos[0]+f1rect.width>width:

speed[0]=-speed[0]

if pos[1]<0 or pos[1]+f1rect.height>height:

speed[1]=-speed[1]

pos[0]=pos[0]+speed[0]

pos[1]=pos[1]+speed[1]

bgcolor.r=RGBChannel(f1rect.left*255/width)

bgcolor.g=RGBChannel(f1rect.top*255/height)

bgcolor.b=RGBChannel(min(speed[0],speed[1])*255/max(speed[0],speed[1],1)) # 设置最大速度不能为0,最小为1

screen.fill(bgcolor) # 填充颜色

f1rect=f1.render_to(screen,pos,"世界和平",fgcolor=GOLD,size=50)

fclock.tick(fps)

pygame.display.update() # 更新全部显示

# pygame.quit()


版权声明:本文为weixin_39807067原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。