【pygame杂记】字体相关

在pygame中列出系统所有字体名称并展示效果 pygame对中文的支持并不是十分友好,所以当程序中需要显示中文时,写个小程序看一下系统中的所有字体,哪些是支持中文的,哪些不支持,哪些支持的不完整... 阅读详情

另一篇文章中介绍了font模块的相关内容,但是实际上有很多不常用的。这边举几个例子,包含常用的步骤

font模块使用 显示文字

实际上就几个必要的步骤

1.创建字体对象

要使用字体自然要有字体对象的实例
创建并选择字体。创建的方法有多种,选择合适的就ok。

myfont = pygame.font.Font("msyh.ttf", 32)  # 用程序目录下的msyh.ttf字体文件
myfont = pygame.font.SysFont("msyh", 32) # 用系统字体

第一个参数: 字体文件
第二个参数: 字体大小

2.使用创建的字体实例调用render方法绘制成图片

实际上是使用Font实例

Text = "文本"
font_surface = myfont.sender(Text, True, BLUE,background = None)

第一个参数:要显示的内容
第二个参数:是否以抗锯齿的方式显示,True:抗锯齿, False:不抗锯齿
第三个参数: 显示文本的颜色
第四个参数: 背景

绘制到目标

screen.blit(font_surface, (0,0))
#绘制到目标screen上

全部代码

import pygame,sys
  
# 1.初始化操作
pygame.init()
 
# 2.创建游戏窗口
window_size_width = 600
window_size_height = 400
window = pygame.display.set_mode((window_size_width,window_size_height))
 
# 设置游戏标题
pygame.display.set_caption('游戏test')
 
# 创建字体对象
font = pygame.font.Font("C:/Windows/Fonts/STXINWEI.TTF",30)  # 参数:字体文件,字体大小
 
# 创建文字对象
text = font.render("你好",True,(255,0,0),(255,255,0))  # 参数:文字内容,True,文字颜色,背景颜色
 
# 缩放和旋转
text_rotozoom = pygame.transform.rotozoom(text, 90, 2)  # 参数:目标,旋转角度,缩放比例
 
w,h = text_rotozoom.get_size()  # 获取文字大小
window.blit(text_rotozoom,((window_size_width-w)/2,(window_size_height-h)/2 ))  # 渲染到窗口并设置字体显示位置
pygame.display.flip()  # 第一次刷新
 
# 3.让游戏保持一直运行的状态
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果点击了关闭按钮
            sys.exit()

文字保存成png格式透明背景

import pygame  
pygame.init()  

text = "text"  
my_font = pygame.font.SysFont("arial", 64)  
name_surface = my_font.render(text, True, (0, 0, 0))  
pygame.image.save(name_surface, "name.png")  
使用Pygame显示文字的示例代码 然后,使用screen.fill()方法将屏幕填充为黑色,以清空之前的内容。接下来,使用screen.blit()方法将文字表面绘制到屏幕的指定位置(这里是(200, 200))。接着,使用pygame.font.SysFont()函数创建了一个系统默认字体对象,并设置字号为48。"渲染成一个表面(Surface),并指定文字颜色为白色。你可以根据需要修改文字内容、字体、位置和窗口尺寸等参数,以实现不同的文字显示效果。首先,通过导入pygame和sys模块并初始化Pygame,创建一个窗口并设置窗口标题。 阅读详情

相关推荐

pygame学习笔记——设置字体、显示中文

一、获得可用字体 import pygame print(pygame.font.get_fonts()) 结果: ['arial', 'arialblack', 'bahnschrift', 'calibri', 'cambriacambriamath', 'cambria', 'candara', 'comicsansms', 'consolas', 'constantia', 'corbel', 'couriernew', 'ebrima', 'franklingothicmedium'.

小橙子的博客 1万+

python怎样在pygame中设置字体并显示中文

本文主要介绍了python怎样在pygame中设置字体并显示中文

huadong_xiaolin的博客 9273

交流电路计算方法:复阻抗和相量法

一,复阻抗 电容电路,电压与电流的大小比值是XC=1/WC,相位上电流比电压超前90度 这样描述很麻烦,在复平面里,相位超前90度,可以用什么数学表示呢? 也就是说,一个相量,乘以j之后,大小没变化,相位变得超前90度了 同样的,大小不变,相位落后90度应该除以j 原来我们说电容电路,给个电压,算电流又要算XC,又要另外说相位超前90度,现在可以简单点 在这个计算式里,1/wc还是原来的容抗大...

theory and practice的博客 3万+

PyGame字体详解

在pygame程序中,第一步势必进行初始化,即调用pygame.init()函数,而此初始化过程,则顺便包含了字体初始化,即默不作声地调用了pygame.font.init()函数。如果想获得每个文字的尺寸,则可使用metrics(text)方法,其返回值是一个列表,每个元素都代表text中的一个文字尺寸,格式为(minx, maxx, miny, maxy, advance),前四项比较好理解,advance表示前进偏移量。pygame可以很方便地判断当前字体,并且能够获取系统字体,示例如下。

微小冷的学习笔记 1945

PCB布局布线要求及多层电路板叠加原则

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考本文主要针对PCB布局布线中的要点进行了总结,并对多层电路板的叠加原则进行了解释。

Ka_wyb的博客 2933

Skynet 框架面试题

本文整理了游戏服务端开发面试中 Skynet 框架的高频考点,涵盖底层架构、消息派发、协程调度、网络 I/O、harbor 跨机通信、内存管理、socket 处理、阻塞操作、错误处理等核心内容。全面覆盖 Skynet 框架的原理、使用和实战问题,追求深入准确,拒绝八股文。

小赖的博客 381

Pygame 字体和文本

字体在游戏中也扮演着生要的角色。比如显示得分,角色之间的对话等等。Pygame中字体使用".ttf"文件,它代表 True Type File。

编程日志 1343

第二十六届中国机器人及人工智能大赛CRAIC决赛小型桌面级-立体仓储代码分享

国二奖,精度还有不少问题,没有视觉模块,单线程,比起其他大佬写的确实还有欠缺,继续加油吧。

qq_68232259的博客 691

pygame设置中文字体

【代码】pygame设置中文字体。

2301_78420308的博客 924

Win11如何更改用户文件夹名(完整流程- 已验证可行)

把C盘所有文件备份,如果不想备份,则选择创建一个C盘的系统还原点(能在后续把C盘玩崩之后恢复原状)

Y_Aryan的博客 5万+

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计

define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。

corlin6688的博客 126

pygame文档学习之font

font模块是pygame中加载和渲染字体的地方。font模块允许把TrueType字体渲染成Surface对象。大多数使用字体的工作都是通过使用实际的字体对象来完成的。这个模块本身只有一些例程来支持用pygame.font.Font()创建一个新的字体对象。我们可以从系统加载字体,然后用 pygame.font.SysFont() 函数把它渲染为字体对象。pygame的默认字体是freesansbold.ttf,这总是能通过传递None作为字体名称来访问它。

2401_87006911的博客 2932

PCIE2.0/PCIE3.0/PCIE4.0/PCIE5.0接口的带宽、速率计算

一、PCIE接口速率: 二、PCIE相关概念: 传输速率为每秒传输量GT/s,而不是每秒位数Gbps,因为传输量包括不提供额外吞吐量的开销位; 比如 PCIe 1.x和PCIe 2.x使用8b / 10b编码方案,导致占用了20% (= 2/10)的原始信道带宽。 GT/s —— Giga transation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。 Gbps —— Giga Bits Per Second

技术联盟 1万+

Python pygame-ce(GUI编程)模块最完整教程(2/8)

get_mods方法获得的结果类似于event.mods,但是KEYDOWN或KEYUP只会在刚按下和刚松开按键时触发,而get_mods方法获得的是持续按下不松开的按键内容。Surface是渲染的文本表面,Rect是文本的大小,位于文字的原点。矩形对象的大小是表面的大小,位置(x, y)是文本原点的位置(也就是(0, 字体上升高度))。当用户按下某个按键时,会先打印一次"KEYDOWN",然后等待1000ms,再以200ms的时间间隔触发事件,打印多次"KEYDOWN",如果不能理解可以运行代码试一下。

pythonzzy的博客 7944

Python爬虫实战:逆向解析腾讯视频API,高效获取结构化视频信息

首先,我们定义期望获取的数据结构,这有助于数据验证和代码清晰度。python"""腾讯视频信息数据模型"""title: str = Field(..., description="视频标题")vid: str = Field(..., description="视频唯一ID")play_count: Optional[int] = Field(None, description="播放量")

2201_76125261的博客 2378

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Pygame Font文本和字体(含示例)

Pygame Font文本和字体(含示例) 文本是任何一款游戏中不可或缺的重要要素之一,Pygame 通过pygame.font模块来创建一个字体对象,从而实现绘制文本的目的。该模块的常用方法如下所示: 方法 说明 pygame.font.init() 初始化字体模块 pygame.font.quit() 取消初始化字体模块 pygame.font.get_init() 检查字体模块是否被初始化,返回一个布尔值。 pygame.font.get_default_font() 获得默认字体的文件名。返回

ccc369639963的博客 7658

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python 学习之路:python3中pygame解决中文显示

这篇文章主要介绍python3中pygame解决中文显示问题,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。相对路径:"./Fonts/gdllds.ttf";绝对路径:r"D:\UnionPython\Python十分钟入门\Fonts\gdllds.ttf"如:本例中的字体:gdllds.ttf,是我在站长之家的字体库下载到的。以上是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

3144

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Python】【进阶篇】十、Pygame的Font文本和字体

【Python】【进阶篇】十、Pygame的Font文本和字体

deepboat的博客 7393

Python学习笔记34:进阶篇(二十三)pygame的使用之颜色与字体

Python进阶知识:pygame的使用之颜色与字体

weixin_48668564的博客 3924

pygame显示中文文本框

定义字体和大小 for i in pygame.font.get_fonts(): print(i)text = font.render("中文文字", True, (254, 254, 254))font = pygame.font.SysFont("方正郝刚青铜体简体", 10)# 设置显示位置,这里显示到角色上边。然后直接把打印的字体,设置上。先打印下看看系统字体,# 设置字体内容和颜色。

hzp666的博客 1000

Python(Pygame)字体设置

使用字体模块 使用系统自带的字体:my_font = pygame.font.SysFont("arial", 16) 第一个参数是字体名,第二个自然就是大小,一般来说“Arial”字体在很多系统都是存在的,如果找不到的话,就会使用一个默认的字体,这个默认的字体和每个操作系统相关,你也可以使用pygame.font.get_fonts()来获得当前系统所有可用字体。还有一个更好的方法的

知行流浪 4万+

Pygame Font文本和字体——《Python游戏开发库Pygame》

通过学习和实践Pygame的文本和字体功能,你可以为你的游戏和应用程序添加丰富多样的文本内容,提升用户体验和视觉效果。不断尝试和探索新的功能和特效,将帮助你创建出更加出色和引人入胜的作品。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞🔥《Python全栈工程师》《跟老吕学MySQL》《Python游戏开发实战讲解》🌞《Python全栈工程师·附录资料》《Pillow库·附录资料》《Pygame·附录资料》《Tkinter·附录资料》《Django·附录资料》

Python老吕的博客 1527

python中pygame如何写出字体?讲解详细(较简单)

这个是全部代码,加上他就不会报错了重点还是上面那个代码,这个是给自学的。这是画出字体的代码,但是写上他还不可以运行,会报错!

2203_76127950的博客 848

Pygame教程03:文本显示+字体加载+transform方法

这种方法的好处是你可以使用任何你想要的字体,只要你有字体文件(通常是 .ttf 文件)。当使用自定义字体时,你需要将字体文件与你的游戏一起分发,因为用户的机器上可能没有这个字体。如果系统中没有指定的字体,Pygame会使用默认字体。1.pygame.font字体方法的选择:两种类型的字体,系统字体(通过 pygame.font.SysFont)和自定义字体(通过 pygame.font.Font,需要指定字体文件的路径)。------------★Pygame系列教程★------------

我的Python教程 1414

快速查看本机有哪些支持中文的字体

【代码】快速查看本机有哪些支持中文的字体。

galoiszhou的博客 656

【pygame杂记】字体

这一节放在这里挺突兀的,但是因为今天开周会,晚回来了,而且吃晚饭还吃撑了所以就简单写一下吧。这部分用了一个简单的方法创建字体,之后再进行补充吧。

apythonlearner的博客 450
上一篇: 【pygame】font 模块
下一篇: 【pygame】Sprite类
熟练的魔法师
博客等级 码龄8年 2714粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值