python-3.x - 当我按下 T 键时 Pygame 没有响应
问题描述
我正在制作一个程序,该程序应该在T
按下键时打印“旅行”。但是当我按 时T
,什么都没有打印出来,不像它应该的那样。
我的检测代码:
elif keep_doing_current_event and event.type == draw_intro_text_line_1_event:
typewrite("今天是2121年5月22日。一百年前的今天,天问一号任务火星车“祝融号”")
text = font.render("(按空格键继续)", True, (255, 255, 255))
screen.blit(text, (550, 500))
key = pygame.key.get_pressed()
if key[K_SPACE]:
screen.fill((0, 0, 0))
keep_doing_current_event = False
screen.blit(city_bg, (0, 0))
if key[K_t]:
print("travel")
我有两个问题:
- 代码可以进入
if key[K_t]
声明吗? - 如果是这样,
keep_doing_current_event = False
是造成它的线路吗?
(附加信息:首先,一些文本被打印出来。然后,当按下空格键时,背景切换到火星城市背景。最后,当T
按下键时,程序应该打印travel
)
解决方案
您需要按下space并t立即打印“旅行”的代码。
您需要在应用程序循环中绘制背景。使用KEYDOWN
事件来改变keep_doing_current_event
. 根据以下内容绘制场景keep_doing_current_event
:
current_background = .... # what ever
# application loop
while True:
# event loop
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == K_SPACE:
keep_doing_current_event = False
if keep_doing_current_event:
# draw keep_doing_current_event scene
# [...]
typewrite("今天是2121年5月22日。一百年前的今天,天问一号任务火星车“祝融号”")
text = font.render("(按空格键继续)", True, (255, 255, 255))
screen.blit(text, (550, 500))
# [...]
else:
# draw game scene
screen.blit(city_bg, (0, 0))
key = pygame.key.get_pressed()
if key[K_t]:
print("travel")
推荐阅读
- firebase - 如何在文档内创建自定义变量的侦听器
- javascript - 如何在 Materializecss 中显示消息?
- php - Yii2 urlmanager 规则漂亮的 url 失败
- html - 三角形和类似形状的剪辑路径或边框?
- c - 为什么我会收到“错误:函数 'sock->ops->accept' 的参数太少”
- php - PHP - LDAP 在不使用管理员帐户的情况下更改 Active Directory 中的用户密码
- node.js - 这是将启动脚本(www)更改为异步的常用方法吗?
- apache - 未替换具有 LocationMatch-Hit 的 Apache Substitute
- html - 了解 chrome vs safari 中的高度 vh
- angular - 如何检查 Angular 中是否填充了 Observable 值?