gpt4 book ai didi

python - 确定循环中的第一次出现

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:56 25 4
gpt4 key购买 nike

我是 Python 的新手,但我环顾四周,没有看到任何与我正在尝试做的事情相匹配的东西。

我正在使用 PyGame 检测三个对象(球、方 block A、方 block B)之间的碰撞。我想要做的是,如果球击中方 block B,则 X 发生,但前提是它之前击中过方 block A。因为这是在一个连续发生的循环中,我不能简单地将 ballAcollide 设置为 true,因为它会立即重置。

我目前有一些可行的方法,但我确信这是一个丑陋的解决方法,并且有更好的方法来实现它。这是有问题的代码片段:

def fastball(ball, squareA, squareB):
# This needs to be improved
if ball.rect.colliderect(squareA.rect):
# do unrelated
global firsthit
firsthit = False
elif ball.rect.colliderect(squareB.rect):
try:
if not firsthit:
# do X
except NameError:
# do nothing

最佳答案

根据PatrickArtner的建议回答:

def fastball2(ball, squareA, squareB, list):
if ball.rect.colliderect(squareA.rect):
if len(list) == 0:
list.append('A')
# do unrelated
elif ball.rect.colliderect(squareB.rect) and len(list) > 0:
# do x

如果满足某些条件,列表将在循环中的不同点刷新。感谢您的帮助!

关于python - 确定循环中的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com