"""翻转及以中心点旋转的文字.py,这是一个pygame的文本练习,首先新建字体对象,然后具体地渲染成图形,最后合成到screen上。""" # 导入一个叫pygame的模块 import pygame # 初始化pygame模块 pygame.init() # 定义颜色常量 BLACK = (0, 0, 0) WHITE = (255, 255, 255) BLUE = (0, 0, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) PI = 3.141592653 # 设置屏幕的宽度和高度,然后创建屏幕 size = (400, 500) screen = pygame.display.set_mode(size) pygame.display.set_caption("翻转及以中心点旋转的文字") # 设置窗口标题 # 循环直到这个变量的值为True done = False clock = pygame.time.Clock() text_rotate_degrees1 = 0 # 旋转角度 text_rotate_degrees2 = 0 # 旋转角度 李兴球center = [180, 350] # 旋转中心 # 生成字体对象,大小, bold, italics font = pygame.font.SysFont('Calibri', 25, True, False) # 循环直到done的值为True while not done: for event in pygame.event.get(): # 遍历每个事件 if event.type == pygame.QUIT: # 窗口关闭事件发生 done = True # 把此标志设为True # 填充screen颜色为白色 screen.fill(WHITE) # 画两个线条 pygame.draw.line(screen, BLACK, [100,50], [200, 50]) pygame.draw.line(screen, BLACK, [100,50], [100, 150]) # 撂一边文字 text = font.render("Sideways text", True, BLACK) text = pygame.transform.rotate(text, 90) screen.blit(text, [0, 0]) # 旋转180度文字 text = font.render("Upside down text", True, BLACK) text = pygame.transform.rotate(text, 180) screen.blit(text, [30, 0]) # 翻转的文字 text = font.render("Flipped text", True, BLACK) text = pygame.transform.flip(text, False, True) # 左右翻转,上下翻转 screen.blit(text, [30, 20]) # 旋转动画,固定左上角 text = font.render("Rotating text", True, BLACK) text = pygame.transform.rotate(text, text_rotate_degrees1) text_rotate_degrees1 += 1 screen.blit(text, [100, 50]) # 自定义旋转中心 text = font.render("My name is lixingqiu", True, RED) # 返回图层 text = pygame.transform.rotate(text, text_rotate_degrees1) width,height = text.get_width(),text.get_height() # 得到新的宽高 top,left = 李兴球center[0] - width//2,李兴球center[1] -height//2 # 计算左上角坐标 text_rotate_degrees2 += 1 screen.blit(text, [top, left]) # 渲染图层 # 所有的都画好后,显示出来 pygame.display.flip() # fps为60 clock.tick(60) # 退出pygame pygame.quit()
发表评论