Primera parte del script
Analizo a continuación el contenido típico de la primera sección de la estructura de un script.
#Sección 1 ---------------------------------------------------
#Importar e inicializar pygame
import pygame
pygame.init()
#Crear ventana y establecer tamaño
screen = pygame.display.set_mode((640,360))
#Poner título a la ventana
pygame.display.set_caption('Mi primer juego')
#Superficie del fondo de pantalla
imgBackground = pygame.Surface(screen.get_size())
imgBackground = imgBackground.convert()
imgBackground.fill((0, 0, 255))
... aunque va a resultar de precisamente de modelo tiene bien poco. Lo digo tanto por lo que falta como por lo que hay y no es tan común que conste en esta sección. Empiezo por lo segundo, lo que falta.
En efecto, la primera sección de un script PyGame suele contener también la declaración e inicialización de las constantes y variables que es frecuente emplear y que, por lo común, se refieren a las constantes de tamaño de la ventana, en su caso las constantes de los colores y posiblemente también los valores iniciales de los parámetros x e y. Lo explico.
Inmediatamente después de inicializar PyGame (pygame.init()) creamos una ventana asociada a la variables screen (screen = pygame.display.set_mode((640,360))) mediante la función set_mode() que recibe como parámetro una tupla con dos valores numéricos que se corresponden respectivamente con el ancho y el alto de la ventana.
Aunque esta forma de plantear la instrucción es válida, es posible mejorarla utilizando una tupla previamente declarada (vg. size = (640,360)) o bien creamos dos constantes (ANCHO = 640 | ALTO = 360). En cualquiera de los casos, esa variable o estas constantes deberán figurar en la sección 1ª del script.
De modo similar, más abajo generamos un fondo de ventana (imgBackground.fill((0, 0, 255))) empleando también una tupla con un código RGB. En este caso es común encontrar en la sección 1ª un conjunto de constantes que se asocian a las tuplas los correspondientes códigos RGB.
Aplicando ambas opciones nuestra sección 1ª se mostraría como sigue:
#Importar e inicializar pygame
import pygame
pygame.init()
#Inicializar constantes
ANCHO = 640
ALTO = 360
BLANCO = (255,255,255)
NEGRO = (0,0,0)
ROJO = (255,0,0)
VERDE = (0,255,0)
AZUL = (0,0,255)
#Crear ventana y establecer tamaño
screen = pygame.display.set_mode((ANCHO,ALTO))
#Poner título a la ventana
pygame.display.set_caption('Mi primer juego')
#Superficie del fondo de pantalla
imgBackground = pygame.Surface(screen.get_size())
imgBackground = imgBackground.convert()
imgBackground.fill((AZUL))
Se supone que en script complejos y cuando nos interesa reutilizar código, el uso de constantes y variables facilita el trabajo, ya que evita tener que modificar los datos (en este caso numéricos) en cada una de las instrucciones en las que son requeridos. Por si te es de utilidad, te dejo [enlace a un script] que implica el uso de esta forma de proceder.
Visto hasta aquí lo que puede faltar en la sección 1ª, vamos a ver ahora lo que no suele estar, aunque está bien que éste. Me refiero a las instrucciones que establecen las características del fondo de pantalla.
La primera de estas instrucciones (mgBackground = pygame.Surface(screen.get_size())) crea una superficie mediante la función Surface() que recibe como parámetro la misma dimensión que tiene la ventana, a la cual accedemos mediante la función screen.get_size().
La instrucción imgBackground = imgBackground.convert() convierte el formato de la imagen precedente al mismo que tiene PyGame (esto es, al formato de la pantalla), evitando así posibles demoras en el tratamiento de las imágenes.
Finalmente, la instrucción imgBackground.fill((AZUL)) se encarga de llenar la imagen del color que hemos especificado en la constante AZUL, esto es el que resulta de la tupla (0,0,255), que es el color RGB azul.
Es precisamente esta última instrucción, aunque modificada, la única de las tres que suele figurar como parte de la sección 1 (screen.fill((AZUL))) resultando [este script] como posible realización de estos cambios. Obsérvese que también se ha simplificado el contenido de la sección 2.
No hay comentarios:
Publicar un comentario
Comenta esta entrada