Я очень плохо знаком с Python, но я осмотрелся и не увидел ничего, что соответствовало бы тому, что я пытаюсь сделать.
Я использую PyGame для обнаружения столкновений между тремя объектами (шар, квадрат A, квадрат B). Я хочу, чтобы X возникал, если мяч попадал в квадрат B, но только в том случае, если он ранее попадал в квадрат 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