如何用Pygame创建文本输入框?

如何用Pygame创建文本输入框?

Pygame 是一个使用 Python 开发多媒体应用程序(如视频游戏)的免费开源库。它包含图形和声音库,非常适用于设计视频游戏。 Pygame 是基于 Simple DirectMedia Layer(SDL) 库构建的,该库提供低级别访问硬件和输入设备。因为Pygame基于 SDL 构建,所以它提供跨平台的图形、声音和输入处理接口。这意味着您可以编写一次游戏或多媒体应用程序,并在多个平台上运行,包括Windows、Mac OS和Linux。

要使用 Pygame ,应该具备基本的 Python 语言了解。本教程结束时,我们将能够理解Pygame的工作原理。它包括几个函数用于制作视频游戏和图形。在安装Pygame之前,应在系统中安装Python。

示例1

在此示例中,我们首先导入了Pygame和sys,然后使用“pygame.init()”初始化所有导入的模块并定义’ clock ‘以刷新给定秒内的帧。然后,我们设置了屏幕显示模式和标题,然后是字体和文本,然后创建了一个矩形并设置颜色参数。接下来,通过使用几个函数设置了输入框的工作流程。最后,使用“pygame.display.flip()”函数显示。

import pygame,sys
pygame.init()
clock = pygame.time.Clock()
screen= pygame.display.set_mode((500,500)) 
pygame.display.set_caption('text input')
user_text= ' '
font = pygame.font.SysFont('frenchscript',32) 
input_rect = pygame.Rect(200,200,140,40)
active=False
color_ac=pygame.Color('green')
color_pc=pygame.Color('red')
color=color_pc
active=False
while True:    
   for events in pygame.event.get():
      if events.type==pygame.QUIT:
         pygame.quit()
         sys.exit()

      if events.type==pygame.MOUSEBUTTONDOWN:
         if input_rect.collidepoint(events.pos):
            active = True

      if events.type == pygame.KEYDOWN:
         if active == True:

            if events.key == pygame.K_BACKSPACE:
               user_text = user_text[:-1]
            else:
               user_text+=events.unicode

   screen.fill('blue')
   if active:
      color=color_ac
   else:
      color=color_pc

   pygame.draw.rect(screen,color,input_rect,2)

   text_surface = font.render(user_text,True,(255,255,255))
   screen.blit(text_surface,(input_rect.x + 5, input_rect.y +5))
   input_rect.w=max(100,text_surface.get_width() + 10)
   pygame.display.flip()
   clock.tick(60)
Bash

输出

如何用Pygame创建文本输入框?

如何用Pygame创建文本输入框?

示例2

这是另一个类似的示例,我们只使用了pygame模块创建了一个文本输入框,然后定义了其他方法来创建文本框。最后,我们使用“pygame.display()”函数显示它。

import pygame
pygame.init()
screen = pygame.display.set_mode((700, 200))
clock = pygame.time.Clock()

font = pygame.font.SysFont(None, 50)
text = ""
input_active = True

run = True
while run:
   clock.tick(60)
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         run = False
      elif event.type == pygame.MOUSEBUTTONDOWN:
         input_active = True
         text = ""
      elif event.type == pygame.KEYDOWN and input_active:
         if event.key == pygame.K_RETURN:
            input_active = False
         elif event.key == pygame.K_BACKSPACE:
            text =  text[:-1]
         else:
            text += event.unicode

      screen.fill('purple')
      text_surf = font.render(text, True, (255, 0, 0))
      screen.blit(text_surf, text_surf.get_rect(center = screen.get_rect().center))
      pygame.display.flip()

pygame.quit()
exit()
Bash

输出

如何用Pygame创建文本输入框?

如何用Pygame创建文本输入框?

结论

我们知道 Pygame 是一个创建视频游戏和多媒体应用程序的流行库。开发人员可以使用这个著名的库创建多个游戏。它提供了一个易于使用的界面来创建和操作图形。任何人都可以使用它在屏幕上绘制形状、图像和动画。您也可以使用它来创建粒子系统和滚动背景等视觉效果。总的来说,Pygame 是一个功能强大、多用途的库,可用于各种应用。

通过学习 Pygame,每个人都可以在图形编程、声音编程、输入处理、游戏开发和跨平台开发方面发展技能。凭借其易于使用的界面和广泛的功能,Pygame 是任何对使用 Python 创建游戏或多媒体应用程序感兴趣的人的绝佳选择。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程