gpt4 book ai didi

python - 如何将文本添加到pygame矩形中

转载 作者:太空狗 更新时间:2023-10-30 01:02:10 25 4
gpt4 key购买 nike

我已经在 pygame 中绘制了一个矩形,但是我需要能够将诸如“Hello”之类的文本放入该矩形中。我怎样才能做到这一点? (如果您也能解释一下,将不胜感激。谢谢)

这是我的代码:

import pygame
import sys
from pygame.locals import *

white = (255,255,255)
black = (0,0,0)


class Pane(object):
def __init__(self):

pygame.init()
pygame.display.set_caption('Box Test')
self.screen = pygame.display.set_mode((600,400), 0, 32)
self.screen.fill((white))
pygame.display.update()

def addRect(self):
self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
pygame.display.update()

def addText(self):
#This is where I want to get the text from

if __name__ == '__main__':
Pan3 = Pane()
Pan3.addRect()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit();

感谢您的宝贵时间。

最佳答案

您首先必须创建一个 Font (或 SysFont )对象。调用 render此对象上的方法将返回 Surface使用给定的文本,您可以在屏幕或任何其他屏幕上 blit Surface .

import pygame
import sys
from pygame.locals import *

white = (255,255,255)
black = (0,0,0)


class Pane(object):
def __init__(self):
pygame.init()
self.font = pygame.font.SysFont('Arial', 25)
pygame.display.set_caption('Box Test')
self.screen = pygame.display.set_mode((600,400), 0, 32)
self.screen.fill((white))
pygame.display.update()


def addRect(self):
self.rect = pygame.draw.rect(self.screen, (black), (175, 75, 200, 100), 2)
pygame.display.update()

def addText(self):
self.screen.blit(self.font.render('Hello!', True, (255,0,0)), (200, 100))
pygame.display.update()

if __name__ == '__main__':
Pan3 = Pane()
Pan3.addRect()
Pan3.addText()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit();

enter image description here

请注意,您的代码看起来有点奇怪,因为通常您在主循环中而不是事先完成所有绘图。此外,当您在程序中大量使用文本时,请考虑缓存 Font.render 的结果,因为这是一个非常慢的操作。

关于python - 如何将文本添加到pygame矩形中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com