python - 在pygame中制作游戏
问题描述
您好,我正在 pygame 上为大学制作一个典型的防御者街机游戏。我目前的目标是让游戏在玩家失去生命时暂停并显示一条消息,并在按下一个键时恢复下一个生命。这是 hp 和生命的代码:
hit = pygame.sprite.spritecollide(shuttle,sprites, True)
if hit:
shuttle.damage += 10 #increase damage
tesla_sprite1 = aliens.Alien(screen, ai_settings, random.randrange(800,
ai_settings.screen_width),random.randrange(0, ai_settings.screen_height))
sprites.add(tesla_sprite1)
if shuttle.damage == 100:
shuttle.damage = 0
you_crashed = "You have crashed!"
you_crashed_label = crash_font.render(f"{you_crashed}",1, (255,0,0))
screen.blit(you_crashed_label, (ai_settings.screen_width - 800, ai_settings.screen_height / 2))
Shuttle 是一个类的实例,damage 是 hp,sprites 是一个包含敌人的 sprite 组。ai_settings 是一个不同的模块,我从中借用变量。有什么建议么?
解决方案
要创建弹出菜单并停止游戏,您必须实现按钮并在主循环中嵌入内部 while 循环。您可以在该循环中绘制按钮,还可以检测鼠标输入。当按钮被按下时,只需改变游戏状态并从内部循环中中断。
推荐阅读
- python - 如何在snakemake中处理可变数量的复制
- amazon-web-services - AppConfig 可以用于跨账户部署吗?
- swift - TabBarController:总是跳转到根 NavigationController
- javascript - @firebase/firestore:Firestore (7.16.0):连接 GRPC 流错误。代码:1 消息:1 CANCELLED:操作已取消
- firebase - .once() 在使用 Flutter 和 Firebase 时似乎不起作用/无法识别
- typescript - 打字稿:第一次编译总是失败,但第二次成功
- r - 为什么 quanteda 在转换为 topicmodels 格式时会丢弃一些文档?
- javascript - chart.js 不规则时间序列产生不正确的工具提示
- html - 使项目平均填充弹性容器
- python - 创建带有时间戳的 Python 模型时,我不断收到“格式无效”错误