title: Pygame Surface updates non-sequentially
body: <p>I am attempting to implement a simple Pygame script that is supposed to:</p>
  
  <ol>
  <li>First, check for when the user presses the <kbd>Space</kbd> key;</li>
  <li><em>On <kbd>Space</kbd> keypress,</em> display some text; then</li>
  <li>Pauses for 2 seconds <em>and then</em> update the screen to its original state.</li>
  </ol>
  
  <p>Note that all of the above events must occur <strong>sequentially</strong>, and <strong>cannot be out of order</strong>.</p>
  
  <p>I am encountering problems where the program first pauses, then displays the text only appears for a split second (or not at all) before the screen updates to its original state.</p>
  
  <p>The program seems to have skipped over step 2 and proceeded with the pause in step 3 before displaying text. My code is as follows:</p>
  
  <pre><code>import pygame
  import sys
  from pygame.locals import *
  
  WHITE = (255, 255, 255)
  BLACK = (0, 0, 0)
  
  pygame.init()
  wS = pygame.display.set_mode((500, 500), 0, 32)
  
  
  # Method works as intended by itself
  def create_text(x, y, phrase, color):
      """
      Create and displays text onto the globally-defined `wS` Surface
      (params in docstring omitted)
      """
      # Assume that the font file exists and is successfully found
      font_obj = pygame.font.Font("./roboto_mono.ttf", 32)
      text_surface_obj = font_obj.render(phrase, True, color)
      text_rect_obj = text_surface_obj.get_rect()
      text_rect_obj.center = (x, y)
      wS.blit(text_surface_obj, text_rect_obj)
  
  
  while True:
      wS.fill(BLACK)
      for event in pygame.event.get():
          if event.type == KEYDOWN and event.key == K_SPACE:
  
              # Snippet containing unexpected behavior
              create_text(250, 250, "Hello world!", WHITE)
              pygame.display.update()
              pygame.time.delay(2000)
              # Snippet end
  
          if event.type == QUIT:
              pygame.quit()
              sys.exit(0)
      pygame.display.update()
  </code></pre>
  
  <p>Thanks in advance!</p>