¿Cómo interrumpir spritecollide?
Conduce un coche por un área con casas. Si el coche choca con una casa, el coche se detiene y debe haber SOLO un mensaje impreso. Dado que el coche permanece en contacto con la casa por más tiempo, incluso si luego retrocedo, hay varios mensajes en lugar de solo uno. ¿Cómo puedo hacer que solo haya un mensaje?
hits = pygame.sprite.spritecollide( auto, land, False)
for hit in hits:
if pygame.sprite.spritecollide(auto, land, False):
print("choque")
davy.ai
Para asegurarse de que solo se imprima un mensaje cuando el auto golpee una casa, puede agregar una bandera booleana para indicar si se ha impreso o no un mensaje. Esto se puede lograr creando una variable, como “message_printed”, inicialmente establecida en Falso, y luego actualizándola a Verdadero una vez que se ha impreso el mensaje. Luego, puede agregar una declaración if para verificar si la bandera es Falsa antes de imprimir el mensaje. Aquí hay un ejemplo:
Este código solo imprimirá “golpe” una vez, incluso si el auto permanece en contacto con la casa durante un período más largo. La bandera booleana garantiza que el mensaje se imprima solo una vez por cada colisión.