2016-07-10 2 views
1

私はパイゲームでゲームを作っています。このゲームをするときには、画面上にたくさんのテキストを使用しています。しかし、私のコードでこの点に達すると、最初に書かれたテキストは点滅しませんが、2番目のテキストは変えたいと思います。また、私はその手紙を一度書くだけで、手紙が何度も何度も書かれた鍵を持っています。コード:pygame blinking text

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) 

編集:私は私はあなたが多くの場所への道にpygame.display.update()を呼び出すので、あなたのテキストが点滅している理由があると信じている

+0

*また、私は手紙が急速に超えると、あなたは 'KEYDOWN'イベントを聴いているためです*私はそれが一度その手紙を書きたいときに上書きされることをキーを押し続けたとき。もしあなたが一度だけ起動させたいなら、代わりに 'KEYUP'を聞いてください。 – Michael

+0

@Thanks、それはうまくいきました。愚かな質問のために叫ぶ。私は点滅している画面への答えは表示されませんが –

答えて

0

のためのソリューションを持って今、唯一の問題は、テキストを点滅しています。コードの末尾に一度pygame.display.update()と電話するだけです。

〜Mr.Python