def food_update(snack, ai_settings, screen, foods): '''更新食物''' if len(foods) == 0: #记录是否发生碰撞 is_collide = False #构造新食物 new_food = Food(screen, ai_settings) test_rect = new_food.rect.copy() while True: #构造随机位置 test_rect.centerx = random.randint( ai_settings.food_side, ai_settings.win_width - ai_settings.food_side) test_rect.centery = random.randint( ai_settings.food_side, ai_settings.win_height - ai_settings.food_side) #检查碰撞 for snk in snack.snack_list: if pygame.Rect.colliderect(test_rect, snk.rect): is_collide = True break if is_collide == False: new_food.rect = test_rect foods.append(new_food) new_food.blit_food() break else: is_collide = False else: for fd in foods: fd.blit_food()