Python / Pygame заставляет текст внутри a for l oop постоянно перемещаться - PullRequest
2 голосов
/ 12 июля 2020
while game_loop == True:
    cur = pygame.mouse.get_pos()
    click =pygame.mouse.get_pressed()
    
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT:
            terminate()

                
    game_display.fill(white)
    



        

    x_change =  random.randint(-25,25)
    y_change = random.randint(-25,25)
    
    x += x_change
    y += y_change


    
    text_correct(very_big_font,correct_character,black,cool_red,game_display,x,y,action = "correct" )
    
    for i in range (0, len(wrong_character_list)):
        x2 = random_character_list_spot[i+1][0]
        y2 = random_character_list_spot[i+1][1]
        text_correct(very_big_font, wrong_character_list [i],black,cool_red,game_display,x2,y2,action = "wrong")        
        x2 += x_change
        y2 += y_change
    
    pygame.display.update()
    Clock.tick(FPS)

"text_correct" перемещается нормально. X_change и y_change решают, как текст будет двигаться. Но я не знаю, как заставить его двигаться внутри за l oop. Wrong_character_list - это список, содержащий алфавит, и вы должны щелкнуть «правильный_символ», но я могу переместить те, которые находятся внутри l oop. Он просто остается на месте. Кто-нибудь знает как?

1 Ответ

0 голосов
/ 12 июля 2020

Вам необходимо обновить позиции в списке:

for i in range(len(wrong_character_list)):
    x2, y2 = random_character_list_spot[i+1]
    text_correct(very_big_font, wrong_character_list[i],
        black,cool_red,game_display,x2,y2,action = "wrong")        
    x2 += x_change
    y2 += y_change
    random_character_list_spot[i+1] = [x2, y2] # <--- update position

Если вы хотите переместить его по-другому, тогда вам нужно вычислить x_change и y_change в l oop:

for i in range(len(wrong_character_list)):
    x_change =  random.randint(-25,25)
    y_change = random.randint(-25,25) 

    x2, y2 = random_character_list_spot[i+1]
    text_correct(very_big_font, wrong_character_list[i],
        black,cool_red,game_display,x2,y2,action = "wrong")        
    x2 += x_change
    y2 += y_change
    random_character_list_spot[i+1] = [x2, y2] # <--- update position
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...