пигмент мигающий текст

python text pygame

546 просмотра

1 ответ

33 Репутация автора

Я делаю игру в Pygame, и когда я делаю эту игру, я использую много текста на экране. но когда я дохожу до этого пункта в моем коде, текст, который написан на первом, не мигает, а на втором появляется, и я хотел бы изменить это. Также, когда я держу ключ, это письмо пишется быстро снова и снова, когда я хочу, чтобы оно написало это письмо один раз. Код:

def game_loop():

    while True:

        clock = pygame.time.Clock()




        def enter_name():
            global kiriko
            global pressed_key
            global ikey
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_1 :
                        pressed_key = '1'

                    if event.key == pygame.K_2 :
                        pressed_key = '2'


                    if event.key == pygame.K_3 :
                        pressed_key = '3'


                    if event.key == pygame.K_4 :
                        pressed_key = '4'


                    if event.key == pygame.K_5 :
                        pressed_key = '5'


                    if event.key == pygame.K_6 :
                        pressed_key = '6'


                    if event.key == pygame.K_7 :
                        pressed_key = '7'


                    if event.key == pygame.K_8 :
                        pressed_key = '8'


                    if event.key == pygame.K_9 :
                        pressed_key = '9'


                    if event.key == pygame.K_0 :
                        pressed_key = '0'


                    if event.key == pygame.K_q :
                        pressed_key = 'q'


                    if event.key == pygame.K_w :
                        pressed_key = 'w'

    #same thing but for every letter in the alphabet...


                    if event.key == pygame.K_PLUS :
                        pressed_key = '+'


                    if event.key == pygame.K_BACKSPACE :
                        kiriko = kiriko[:-1]

                if event.type == pygame.KEYUP:
                    pressed_key = ''



        try:

            message_small(kiriko, display_width / 2, display_height / 1.3)
            message_display("Enter your name")
            pygame.display.update()
            window.fill(white)
            enter_name()
            kiriko += pressed_key
            message_small(kiriko, display_width / 2, display_height / 1.3)
            message_display("Enter your name")
            pygame.display.update()
            clock.tick(120)
        except:
            message_small(kiriko, display_width / 2, display_height / 1.3)
            message_display("Enter your name")
            pygame.display.update()
            window.fill(white)
            enter_name()
            message_display("Enter your name")
            pygame.display.update()
            clock.tick(120)

РЕДАКТИРОВАТЬ: Теперь единственная проблема - мигание текста, как я получил решение для этого

Автор: Adde21_30 Источник Размещён: 10.07.2016 04:59

Ответы (1)


0 плюса

16629 Репутация автора

Я полагаю, что причина, по которой ваш текст мигает, в том, что вы обращаетесь pygame.display.update()ко многим местам. Просто позвоните pygame.display.update()один раз ближе к концу вашего кода.

~ Mr.Python

Автор: Christian Dean Размещён: 28.07.2016 07:01
Вопросы из категории :
32x32