python黑客代码雨:实现包括中文等的多种语言,全屏幕显示,从根本解决中文不显示问题,有完整可执行代码

这篇具有很好参考价值的文章主要介绍了python黑客代码雨:实现包括中文等的多种语言,全屏幕显示,从根本解决中文不显示问题,有完整可执行代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完整代码放在最下面

上结果图:

黑客代码复制,pygame,python,pygame,python

中文无法显示的亚子:(也挺好看的哈哈)

黑客代码复制,pygame,python,pygame,python

正题:代码能跑但是中文是这种乱码或者黑屏的情况主要是因为没有指定字体或者字体是你电脑没有的

如何找到自己电脑的字体呢,代码如下:

import pygame
print(pygame.font.get_fonts())

将获取的字体复制到一个word文档或者其他方式都可以,只是为了方便查看检索就好

找到一个中文字体(或者其他你需要的语言的字体) ,可以结合百度或者谷歌下你电脑该种语言的字体名,我的是mac,中文多都是拼音格式,我用的是'stheitilight',盲猜黑体简体黑客代码复制,pygame,python,pygame,python

换字体:

黑客代码复制,pygame,python,pygame,python

找到代码里这个位置,更换你需要的字体

满屏设置:

黑客代码复制,pygame,python,pygame,python把",FULLSCREEN ,32"去掉就好

其他的报错问题一般就是没有引入要用的库,留意一下报错可以解决

主要用到的库有:

import pygame
import random
from pygame.locals import *
from sys import exit

完整代码:

更改字符,字体,窗口等数据就能得到你自己想要的模式啦

中午:

import pygame
import random
import sys
 
 
def main():
    # 初始化pygame
    pygame.init()
 
    # 默认不全屏
    fullscreen = False
    # 窗口未全屏宽和高
    WIDTH, HEIGHT = 1100, 600
 
    init_width, init_height = WIDTH, HEIGHT
 
    # 字块大小,宽,高
    suface_height = 18
    # 字体大小
    font_size = 20
 
    # 创建一个窗口
    screen = pygame.display.set_mode((init_width, init_height))
 
    # 字体
    font = pygame.font.SysFont( 'stheitilight', font_size)
 
    # 创建一个图像对象
    bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)
    pygame.Surface.convert(bg_suface)
    bg_suface.fill(pygame.Color(0, 0, 0, 28))
 
    # 用纯色填充背景
    screen.fill((0, 0, 0))
 
    # 显示的字符
    letter = ['早','睡','早','起', '   ', '   ', '  ', '吃','好','喝','好', '  ', '居居居','最可爱', '   ', '   ', '  ', '我要','好多好多','番石榴', '   ', '开开心心']
    texts = [
        font.render(str(letter[i]), True, (0, 255, 0)) for i in range(len(letter))
    ]
 
    # 也可以替换成0 1 显示
    # texts = [
    #     font.render('0',True,(0,255,0)),font.render('1',True,(0,255,0))
    # ]
 
    # 生成的列数
    column = int(init_width / suface_height)
    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:
                # 按F11切换全屏,或窗口
                if event.key == pygame.K_F11:
                    print("检测到按键F11")
                    fullscreen = not fullscreen
                    if fullscreen:
                        # 全屏效果,参数重设
                        size = init_width, init_height = pygame.display.list_modes()[0]
                        screen = pygame.display.set_mode(size, pygame.FULLSCREEN | pygame.HWSURFACE)
 
                    else:
                        init_width, init_height = WIDTH, HEIGHT
                        screen = pygame.display.set_mode((WIDTH, HEIGHT))
 
                    # 图像对象重新创建
                    bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)
                    pygame.Surface.convert(bg_suface)
                    bg_suface.fill(pygame.Color(0, 0, 0, 28))
                    column = int(init_width / suface_height)
                    drops = [0 for i in range(column)]
                elif event.key == pygame.K_ESCAPE:
                    # 按ESC退出
                    exit()
        # 延时
        pygame.time.delay(30)
 
        # 图像对象放到窗口的原点坐标上
        screen.blit(bg_suface, (0, 0))
 
        for i in range(len(drops)):
            # 随机字符
            text = random.choice(texts)
 
            # 把字符画到该列的下雨的位置
            screen.blit(text, (i * suface_height, drops[i] * suface_height))
 
            # 更新下雨的坐标
            drops[i] += 1
 
            # 超过界面高度或随机数,下雨位置置0
            if drops[i] * suface_height > init_height or random.random() > 0.95:
                drops[i] = 0
 
        # 更新画面
        pygame.display.flip()
 
 
if __name__ == '__main__':
    main()

数字:

#!/usr/bin/env python3
#-*- coding:UTF-8 -*-
import pygame
import random
from pygame.locals import *
from sys import exit
FONT_PX = 40
pygame.init()
winSur = pygame.display.set_mode((1920, 1080),FULLSCREEN,32)
font = pygame.font.SysFont('fangsong', 20)
bg_suface = pygame.Surface((1920, 1080), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 13))
winSur.fill((0, 0, 0))
# 数字
texts = [font.render(str(i), True, (0, 255, 0)) for i in range(10)]
colums = int(1920 / FONT_PX)
drops = [0 for i in range(colums)]
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    pygame.time.delay(33)
    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 > 600 or random.random() > 0.95:
            drops[i] = 0
    pygame.display.flip()

 字母:

#!/usr/bin/env python3
#-*- coding:UTF-8 -*-
import pygame
import random
PANEL_width = 1920
PANEL_highly = 1080
FONT_PX = 40
pygame.init()
# 创建一个窗口
winSur = pygame.display.set_mode((PANEL_width, PANEL_highly))
font = pygame.font.SysFont('123.ttf', 22)
bg_suface = pygame.Surface((PANEL_width, PANEL_highly), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
winSur.fill((0, 0, 0))
letter = ['I love you', 'Je t‘aime', 'c', 'd', 'e', 'f', 'u', 'i', 'WO ai NI', 'p', 'a', '520', 'd', 'f', '1314', 'h', 'j', 'k', 'l', 'z', 'x', 'c',
          'v', 'b', 'n', 'm']
texts = [
    font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)
]

# 按窗口的宽度来计算可以在画板上放几列坐标并生成一个列表
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:
            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()

 文章来源地址https://www.toymoban.com/news/detail-525108.html

到了这里,关于python黑客代码雨:实现包括中文等的多种语言,全屏幕显示,从根本解决中文不显示问题,有完整可执行代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时间序列预测模型实战案例(二)(Holt-Winter)(Python)结合K-折交叉验证进行时间序列预测实现企业级预测精度(包括运行代码以及代码讲解)

    目录 引言 数据格式 运行代码  Holt-Winters模型主体 程序入口 参数讲解 开始训练 预测结果   话不多说上来先上预测精度分析图,其中MAE的误差大概在0.11,以下数据均是预测未知数据,而不是训练数据的预测图。   开始之前我们先来简单了解一下Holt-Winters模型 Holt-Winters模型,也

    2024年02月05日
    浏览(68)
  • Visual studio代码提示(IntelliSense)的语言(包括汉化等)修改

    https://learn.microsoft.com/zh-cn/dotnet/core/install/localized-intellisense .net 之前的安装微软官方文档很详细 图文操作可参照 https://blog.csdn.net/weixin_44442366/article/details/125783336 脚本来源于 https://github.com/stratosblue/IntelliSenseLocalizer 中文说明 https://github.com/stratosblue/IntelliSenseLocalizer/blob/main/READ

    2024年02月07日
    浏览(26)
  • 情人节特别定制:多种语言编写动态爱心网页(附完整代码)

    随着七夕节的临近,许多人都在寻找独特而令人难忘的方式来表达爱意。在这个数字时代,结合创意和技术,我们可以使用多种开发语言来编写一个动态的新型网页,为这个浪漫的节日增添一份特别的礼物。在本文中,我们将带你探索如何使用不同的开发语言来打造一个充满

    2024年02月12日
    浏览(34)
  • 【Python炫酷系列】黑客帝国代码雨(完整代码)

    python3.11.4及以上版本 PyCharm Community Edition 2023.2.5 pyinstaller6.2.0 ( 可选 ,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~) 【注】 python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653 pyinstaller使用教程见:ht

    2024年03月15日
    浏览(40)
  • vant选择器组件添加鼠标滚轮(多种解决方法包括生产环境)

    平常做前端开发的应该知道,在前端组件中,有两种组件 一种是针对移动端的组件 另一种是针对pc的组件 ​ 而pc的组件主要是对鼠标,键盘等操作的支持,而移动端组件常用的事件是触摸等事件 ​ 这时,狗血的就来了,业务总是能用各种奇怪的想法让你来回串着开发 ​ 我

    2024年01月16日
    浏览(31)
  • 数学建模常用python代码【记录项、绘制多种图像】

    该代码通常适用于年月日都对应的 两种方法: 改成英语 或 加编码格式 实现效果 实现效果 实现效果 实现效果 实现效果 实现效果 实现效果 实现效果

    2024年02月10日
    浏览(33)
  • ROS系列——使用python的transforms3d、numpy库实现四元数、旋转矩阵、欧拉角、轴角等的相互转换

    pip3 install transforms3d 四元数模块在transforms3d.quaternions里,直接导入即可使用 2.1.1四元数转旋转矩阵 2.1.2 旋转矩阵转四元数 2.2.1 四元数转轴角 2.2.2 轴角转四元数 四元数模块在transforms3d.euler里,直接导入即可使用 3.1.1 固定轴欧拉角转四元数 3.1.2 四元数转固定轴欧拉角 3.2.1 固定

    2024年02月07日
    浏览(81)
  • Python OpenCV 单目相机标定、坐标转换相关代码(包括鱼眼相机)

      本文不讲原理,只关注代码,有很多博客是讲原理的,但是代码最多到畸变矫正就结束了,实际上就是到 OpenCV 官方示例涉及的部分。   在官方示例中使用黑白棋盘格求解了相机的内外参和畸变系数,并对图像做了畸变矫正,但在实际使用时还缺少很多功能,以下是本

    2024年02月02日
    浏览(24)
  • 排序算法——快速排序(C语言多种实现及其优化策略)

    快速排序可以说是排序界的大哥的存在,在c库中的qsort和c++库中的sort两个排序底层都是用 快速排序实现 ,可想快速排序是有多么强大了把哈哈! 快速排序是Hoare于1962年提出的一种二叉树结构的 交换排序 方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照

    2023年04月11日
    浏览(26)
  • 用C语言实现定积分计算(包括无穷积分/可自定义精度)

    关于严谨性的声明: 在用C语言进行定积分的计算之前,我需要声明以下几点: 一、我们所进行定积分计算的函数都是应当是黎曼可积的,这保证了我们即使均匀地分割区间也保证了积分的收敛性。 二、我们同时还应该认识到,鉴于某些函数不一定是在每一点上都是可导的,

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包