↑这里用于声明编码方式。
import randomimport pygamefrom pygame.locals import *from sys import exitfrom win32api import GetSystemMetrics↑这里用于引用模块方式。
请注意: 我发现自己电脑没有pygame模块,所以请自行安装
cmd.exe中输入 “pip install --upgrade pygame” 这条语句显然是万能的(笑)
这两句是新增的,显然123.ttf不是所有人都有的,没有该字体的人只会显示□□□□□
all_font = pygame.font.get_fonts()是用于获取所有可用字体并储存在all_font列表(list)里
tmpfont = str(all_font[len(all_font) -1])是用于获取中文字体 (毕竟这样最简单,中文总是在后面)
PANEL_width = GetSystemMetrics(0)PANEL_highly = GetSystemMetrics(1)FONT_PX = 20定义宽高和字体大小,这也是新增的,获取屏幕像素,单纯的1920x1440显然不适合我的电脑
pygame.init() # 创建一个可视窗口winSur = pygame.display.set_mode((PANEL_width, PANEL_highly), FULLSCREEN, 32) font = pygame.font.SysFont(tmpfont , 15) bg_suface = pygame.Surface((PANEL_width, PANEL_highly), flags=pygame.SRCALPHA) pygame.Surface.convert(bg_suface) bg_suface.fill(pygame.Color(0, 0, 0, 16)) winSur.fill((0, 0, 0))对游戏画面下定义,注意第二条语句是用tmpfont作为字体
#定义letter列表作为引用对象#汉字版#letter = ['我', '爱', '你', '我', '爱你', '我爱你', '我非常爱你', '我爱你', '我爱', '我', '爱', '你','我爱你', '爱', '我', '爱你', '我', '我爱', '爱你', '你']#二进制版#letter = ['1', '0', '1', '1', '1', '0', '0', '0', '1', '0', '1', '0', '1', '0', '0', '1', '1', '0', '0', '0', '1', '1','1', '0', '1', '0', '0', '1', '0', '1']#字母版#letter = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v','w', 'x', 'y', 'z']#数字版#letter = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']#以下以汉字版做示例letter = ['我', '爱', '你', '我', '爱你', '我爱你', '我非常爱你', '我爱你', '我爱', '我', '爱', '你','我爱你', '爱', '我', '爱你', '我', '我爱', '爱你', '你']texts = [font.render(str(letter[i]), True, (0, 255, 0)) for i in range(len(letter))]OK,咱们继续。。。
# 按屏幕的宽带计算可以在画板上放几列坐标并生成一个列表column = int(PANEL_width / FONT_PX)drops = [0 for i in range(column)] while True: # 从队列中获取事件 for event in pygame.event.get(): if event.type == pygame.QUIT: exit() elif event.type==pygame.KEYDOWN: if event.key==pygame.K_ESCAPE: sys.exit() elif event.type == pygame.KEYDOWN: chang = pygame.key.get_pressed() if (chang[32]): exit() # 将暂停一段给定的毫秒数 pygame.time.delay(30) # 重新编辑图像第二个参数是坐上角坐标 winSur.blit(bg_suface, (0, 0)) for i in range(len(drops)): text = random.choice(texts) # 重新编辑每个坐标点的图像 winSur.blit(text, (i * FONT_PX, drops[i] * FONT_PX)) drops[i] += 1 if drops[i] * 10 > PANEL_highly or random.random() > 0.95: drops[i] = 0 pygame.display.flip()这里几乎无变化,只是插入了elif event.type==pygame.KEYDOWN: if event.key==pygame.K_ESCAPE: sys.exit()用于按Esc退出
如果你想看到控制台,请保存为.py文件
如果你不想看到控制台,请保存为.pyw文件
打包请注意:
走起在控制台进入python安装路径的Script文件夹目录下
cd C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Scripts输入
pyinstaller.exe -F -p C:UsersAdministratorDesktop; -i ..图标路径.ico ..工程文件路径.py不过可能会报错,如果报错,请
先进入
C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packagesPyInstallerutilswin32
文件夹
找到winmanifest.py
可见
将其改为
1074 if not need_new:1075 with open(filename,encoding="UTF-8") as f:1076 old_xml = f.read()1077 new_xml = manifest.toprettyxml().replace('r','')重新打包即可
OK,结束,打完字收工