예제 #1
0
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()