From 923a1d52b81ceee6c687e5ed848168d67a410222 Mon Sep 17 00:00:00 2001 From: 206530118 <3046257660@qq.com> Date: Wed, 23 Jun 2021 08:30:12 +0800 Subject: [PATCH] 4 --- playername_inputbox.py | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 playername_inputbox.py diff --git a/playername_inputbox.py b/playername_inputbox.py new file mode 100644 index 0000000..b193090 --- /dev/null +++ b/playername_inputbox.py @@ -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