Ejercicios del Capítulo 08

Volver al índice.

  1. ¿Por qué, si usamos este código dentro del bucle principal, no conseguimos que el rectángulo se mueva?
    rect_x = 50
    pygame.draw.rect(pantalla, BLANCO, [rect_x, 50, 50, 50])
    rect_x += 1
    
  2. El código de ejemplo para botar el rectángulo usaba un total de cuatro variables. ¿Qué es lo que representaba cada una de ellas?
  3. Si una pantalla tiene 400 píxeles de alto, y un objeto tiene 20 píxeles de alto, ¿en qué punto debería el código comprobar si el objeto está en contacto con el fondo de la pantalla?
  4. Explica qué es lo que está mal en este código (explícalo, no lo corrijas solamente):
    if rect_y > 450 or rect_y < 0:
        rect_y = rect_y * -1
    
  5. Un estudiante está animando una figura de palitos. Ha creado variables separadas para las posiciones de la cabeza, torso, piernas y brazos. Cuando la figura se mueve hacia la derecha, él añade uno a cada una de las variables. Explica cómo se puede conseguir lo mismo con usar tan solo un par de variables x,y (y no, la respuesta no tiene que ver nada con las listas.)
  6. Cuando queremos dibujar un fondo estrellado, explica por qué el siguiente código no funciona al incluirlo dentro del bucle principal, :
    for i in range(50):
        x = random.randrange(0, 400)
        y = random.randrange(0, 400)
        pygame.draw.circle(pantalla, BLANCO, [x, y], 2)
    
  7. Explica cómo animar docenas de objetos al mismo tiempo:
  8. Dada una lista de coordenadas como la siguiente, ¿cuál sería el código necesario para imprimir la localización del array que posee el número 33?
    estrellas = [[ 3,  4],
    		 [33, 94],
    		 [ 0,  0]]
    
  9. Este código consigue que nieve:
    # Procesa cada copo de nieve en la lista
    for i in range(len(lista_copos)):
    
        # Obtenemos el valor de x e y de la lista
        x = lista_copos[i][0]
        y = lista_copos[i][1]
    
        # Dibuja el copo de nieve
        pygame.draw.circle(pantalla, BLANCO, [x, y], 2)
    
        # Mueve un píxel hacia abajo el copo de nieve
        lista_copos[i][1] += 1
    

    El siguiente ejemplo también hace lo mismo. Explica por qué es así.

  10. 	
    # Procesa cada copo de nieve en la lista
    for i in range(len(lista_copos)):
     
        # Dibuja el copo de nieve
        pygame.draw.circle(pantalla, BLANCO, lista_copos[i], 2)
         
        # Mueve un píxel hacia abajo el copo de nieve
        lista_copos[i][1] += 1
    
  11. Échale un vistazo al programa radar_sweep.py (barrido_radar). Lo puedes encontrar en la subsección ``ejemplos gráficos'' de la página de ejemplos. El programa se halla casi al final de la lista. Explica cómo consigue que el barrido del radar sea circular.