python - 如何在pygame中使用event.unicode删除字符串中添加的元素?
问题描述
我的程序中有一个功能,玩家可以输入他的名字,然后出现在屏幕上。但是有没有办法,例如当玩家按下退格键时,添加到字符串的最后一个字母被删除?
继承人的功能,我认为我不需要编写有关播放器名称的其余代码:
def enter_player_name(self):
player_name_screen = True
while player_name_screen:
win.blit(playerNameImg[self.namecount//1], (self.x_0, self.y_0))
self.namecount += 1
if (self.namecount + 1) >= 8:
self.namecount = 0
for event in pg.event.get():
if event.type == pg.KEYDOWN:
if event.key == pg.K_RETURN:
print(self.name)
player_name_screen = False
self.display = GAME_SCREEN
else:
self.name += event.unicode
self.text_name = game_font.render(self.name, True, BLANC)
win.blit(self.text_name, (500, 500))
pg.display.update()
谢谢你的帮助!
解决方案
self.name = self.name[:-1]
按下退格键时删除文本 ( ) 的最后一个字符并呈现新文本:
if event.key == pg.K_RETURN:
print(self.name)
player_name_screen = False
self.display = GAME_SCREEN
elif event.key == pg.K_BACKSPACE:
self.name = self.name[:-1]
self.text_name = game_font.render(self.name, True, BLANC)
else:
self.name += event.unicode
self.text_name = game_font.render(self.name, True, BLANC)
推荐阅读
- php - 如何在laravel中合并模型的两个json字段?
- json - 无法使用 Cosmos DB SQL 检索 JSON 值小节的详细信息
- swift - Realm for Swift 可以抵御注入攻击吗?
- python - 带有自定义选项的 Dash 动态下拉菜单
- javascript - 未捕获的 SyntaxError:模板字符串中的意外标识符
- c# - Zip 下载和解压异常
- react-native - 在 Text 组件内垂直对齐 Pressable
- arrays - Swift:是否有一种“优雅”的方式来过滤字典值(它是一个数组)?
- flutter - 银子懒惰滚动
- typescript - Nestjs 异常处理