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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我可以给出以下的思路: 1. 首先,我们需要在 Pygame 中创建一个窗口,并且设置窗口的大小和标题。 2. 接下来,我们需要定义一个函数来创建闪烁的文字效果动。在这个函数中,我们需要使用 Pygame 内置的 font 模块来创建一个字体对象,并且设置字体的大小和颜色。 3. 然后,我们需要定义一个循环来不断更新文字的位置和透明度。在每一次循环中,我们都需要重新绘制窗口,并且将文字渲染到窗口上。 4. 最后,我们需要在主函数中调用这个函数来启动动效果。 下面是一个简单的示例代码,可以实现物体闪烁运动和闪烁的文字效果动: ```python import pygame import random # 初始化 Pygame pygame.init() # 定义窗口大小和标题 window_size = (800, 600) window_title = "Flash Text Animation" window = pygame.display.set_mode(window_size) pygame.display.set_caption(window_title) # 定义字体文字 font_size = 64 font_color = (255, 255, 255) font = pygame.font.Font(None, font_size) text = "Hello, World!" # 定义闪烁的文字效果动 def flash_text_animation(): # 定义文字的初始位置和透明度 x = random.randint(0, window_size[0] - font_size) y = random.randint(0, window_size[1] - font_size) alpha = 255 # 循环更新文字的位置和透明度 while alpha > 0: # 随机生成下一帧文字的位置 dx, dy = random.randint(-5, 5), random.randint(-5, 5) x = max(min(x + dx, window_size[0] - font_size), 0) y = max(min(y + dy, window_size[1] - font_size), 0) # 更新文字的透明度 alpha -= 5 font_color = (255, 255, 255, alpha) # 绘制窗口和文字 window.fill((0, 0, 0)) text_surface = font.render(text, True, font_color) window.blit(text_surface, (x, y)) # 更新屏幕 pygame.display.update() # 延迟一段时间,控制帧率 pygame.time.delay(50) # 主函数 def main(): # 循环运行闪烁的文字效果动 while True: flash_text_animation() # 运行主函数 if __name__ == "__main__": main() # 退出 Pygame pygame.quit() ``` 这个示例代码可以在 Pygame 窗口中实现一个闪烁的 Hello, World! 文字效果动,每次文字的位置和透明度都是随机生成的。你可以根据自己的需求修改代码,来实现不同的物体闪烁运动和闪烁的文字效果动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值