python - Pygame 移动多个精灵未按预期工作
问题描述
我在 pygame 中制作太空入侵者,我对 python 比较陌生,这是我在 pygame 中的第一个项目。我试图让我的外星人在到达屏幕两侧的边缘时向下移动。但是,它并没有像预期的那样工作。我正在添加一个指向 GitHub 页面的链接,以便任何愿意提供帮助的人都可以查看我的代码。
基本上发生的事情是我将外星人设置为在接触侧面时向下移动 1 个像素,因为当有很多外星人时,这会将它们向下移动很多。显然,随着外星人开始被杀死,他们向下移动的次数减少了。然而,这并不是奇怪的部分。奇怪的是,有时它们会在一侧向下移动 1 px,但在另一侧会向下移动很多。我不太确定我做错了什么。
解决方案
添加 break 语句,这样您就不会多次调用 update (如果偶数个外星人撞墙,您最终会朝同一个方向行进!)您还必须增加 update 中的 y 前进:
for alien in aliens:
if alien.rect.right >= WIDTH:
aliens.update()
break
elif alien.rect.left <= 0:
aliens.update()
break
和:
def update(self):
self.direction *= -1
self.rect.y += 10
代码看起来很酷!
推荐阅读
- python-3.x - 将 for 循环的结果添加到嵌套字典中的相同键
- javascript - 用于验证字段的正则表达式
- javascript - 将 Google 驱动器中的图像插入工作表
- azure - 复制完成后 CloudBlockBlob.StartCopyAsync 是否返回?
- node.js - 无法从 node/react 访问生产中的 graphql
- javascript - 子元素上的 className 影响父元素
- arduino - 堆叠数据,提取价值,下推堆栈
- python - 更改毒物工作目录
- powershell - 导出具有许可证、公司、职位等的 O365 用户
- oauth-2.0 - Oauth2 和微服务