This commit is contained in:
parent
63394f5f9e
commit
923a1d52b8
|
@ -0,0 +1,56 @@
|
||||||
|
import pygame
|
||||||
|
|
||||||
|
class PlayernameInputbox:
|
||||||
|
def __init__(self, screen):
|
||||||
|
"""初始化文本框的属性"""
|
||||||
|
self.screen = screen
|
||||||
|
self.screen_rect = screen.get_rect()
|
||||||
|
|
||||||
|
# 设置按钮的尺寸和其他属性
|
||||||
|
self.width = 200
|
||||||
|
self.height = 50
|
||||||
|
self.box_color = (255, 255, 255)
|
||||||
|
self.text_color = (20, 20, 20)
|
||||||
|
self.font = pygame.font.SysFont("Calibri, Arial", 38)
|
||||||
|
|
||||||
|
# 创建按钮的rect对象,并使其在屏幕上居中
|
||||||
|
self.rect = pygame.Rect(0, 0, self.width, self.height)
|
||||||
|
self.rect.center = self.screen_rect.center
|
||||||
|
self.rect.y += 40
|
||||||
|
|
||||||
|
self.text = "Your Name"
|
||||||
|
self.login = False
|
||||||
|
|
||||||
|
|
||||||
|
def draw_inputbox(self):
|
||||||
|
"""将输入文本渲染为图像,并显示"""
|
||||||
|
self.text_image = self.font.render(self.text, True, self.text_color, self.box_color)
|
||||||
|
self.text_image_rect = self.text_image.get_rect()
|
||||||
|
self.text_image_rect.center = self.rect.center
|
||||||
|
|
||||||
|
self.screen.fill(self.box_color, self.rect)
|
||||||
|
self.screen.blit(self.text_image, self.text_image_rect)
|
||||||
|
|
||||||
|
|
||||||
|
def key_down(self, event):
|
||||||
|
"""输入新文本"""
|
||||||
|
unicode = event.unicode
|
||||||
|
key = event.key
|
||||||
|
|
||||||
|
if key == 8:
|
||||||
|
# 退位键
|
||||||
|
self.text = self.text[:-1]
|
||||||
|
return
|
||||||
|
if key == 301:
|
||||||
|
# 切换大小写键
|
||||||
|
return
|
||||||
|
if key == 13:
|
||||||
|
# 回车键
|
||||||
|
return
|
||||||
|
|
||||||
|
if unicode != "":
|
||||||
|
char = unicode
|
||||||
|
else:
|
||||||
|
char = chr(key)
|
||||||
|
|
||||||
|
self.text += char
|
Loading…
Reference in New Issue