python - 使用 pygame 显示不同样式的项目符号
问题描述
是否有可能使用 pygame 在 Python3 中呈现不同样式的项目符号?我可以使用以下字符' - ',但我宁愿使用圆形项目符号,例如 stackoverflow 使用的那些:
- 这种类型的要点
作为一个非常丑陋的解决方法,我目前正在考虑在项目符号所在的位置画一个圆圈,但在我投入努力之前,我想问一下 pygame 是否天生就不可能,或者我是否遗漏了一些东西。
如果你想测试你的解决方案,最少的工作代码:
import pygame
pygame.init()
screen = pygame.display.set_mode((600, 900))
pygame.display.get_surface().fill((200, 200, 200))
# Fonts
pygame.font.init()
my_font = pygame.font.SysFont('Arial', 30)
text_surface = my_font.render('Some Text', False, (0, 0, 0))
text_surface2 = my_font.render('- A bulletpoint text', False, (0, 0, 0))
# Loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(text_surface, (10, 0))
screen.blit(text_surface2, (10, 50))
pygame.display.flip()
解决方案
您可以选择下载具有不同类型要点的字体并使用它。一个更简单但有限制的替代方法是直接使用 unicode 作为项目符号点,即u'\u2022'
,但这会限制您可以使用的项目符号点类型。
import pygame
pygame.init()
screen = pygame.display.set_mode((600, 900))
pygame.display.get_surface().fill((200, 200, 200))
# Fonts
pygame.font.init()
my_font = pygame.font.SysFont('Arial', 30)
text_surface = my_font.render('Some Text', False, (0, 0, 0))
text_surface2 = my_font.render(u'\u2022 BulletPoint' , False, (0, 0, 0))
# Loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(text_surface, (10, 0))
screen.blit(text_surface2, (10, 50))
pygame.display.flip()
另外,请注意您必须将抗锯齿设置为True
,否则它不会形成圆圈。
my_font.render(u'\u2022 BulletPoint' , True, (0, 0, 0))
推荐阅读
- reactjs - 我应该如何在 React 中流式传输大型本地视频文件?
- javascript - webdriverio测试可以在Unix上执行吗
- android - 无法解析 android 应用程序模块的
- python - Web3-Py:Nonce 事务覆盖问题
- javascript - Tailwind.min.css 在我的 Nuxt 应用程序中覆盖 tailwind.css
- mysql - 如何在我的组合框 vb.net 上使用月份过滤我的表格
- python - Python - 如何过滤数据框以仅保留一种产品的订单号?
- sql - 在 SQL 中将不同的日期格式转换为相同的日期格式?
- node.js - 在 Ubuntu 上用 Wine 运行节点
- javascript - 是什么导致此错误不断出现以及如何防止它继续发生