Cuando se usa Pygame, las superficies generalmente se usan para representar la apariencia del objeto y su posición en la pantalla. Todos los objetos, texto, imágenes que creamos en Pygame se crean usando superficies.
Creando una superficie
Crear superficies en pygame es bastante fácil. Solo tenemos que pasar la altura y el ancho con una tupla al método pygame.Surface() . Podemos usar varios métodos para formatear nuestra superficie como queramos. Por ejemplo, podemos usar pygame.draw() para dibujar formas, podemos usar el método surface.fill( ) para rellenar la superficie. Ahora, la implementación de estas funciones. Analicemos la sintaxis y los parámetros.
Sintaxis : pygame.superficie()
Toma 4 argumentos una tupla de ancho y alto, banderas, profundidad, máscara.
pygame.draw():
Se utiliza para dibujar un objeto, forma.
Sintaxis: Surface.rect(superficie, color, rect)
El código para dibujar un rectángulo usando el método pygame.draw.rect() está a continuación:
Python
# Importing the library import pygame import time # Initializing Pygame pygame.init() # Creating the surface sample_surface = pygame.display.set_mode((400,300)) # Choosing red color for the rectangle color = (255,255,0) # Drawing Rectangle pygame.draw.rect(sample_surface, color, pygame.Rect(30, 30, 60, 60)) # The pygame.display.flip() method is used # to update content on the display screen pygame.display.flip()
Producción:
nombre_superficie.fill():
pygame.Surface.fill: Se utiliza para rellenar con color la superficie.
Sintaxis: pygame.Superficie. fill(color, rect=Ninguno, special_flags=0)
El código para rellenar el color en la superficie utilizando el método surface_name.fill() es:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # Creating the surface sample_surface = pygame.display.set_mode((400,300)) # Choosing yellow color to fill color = (255,255,0) # filling color to the surface sample_surface.fill(color) # updating the display pygame.display.flip()
Producción:
Cargando imagen en la superficie
Aunque podemos dibujar formas y rellenar colores en la superficie, todavía necesitamos tener una imagen en la superficie. Podemos hacer esa superficie fácilmente con el método pygame.image.load(). Este método toma la ruta de la imagen relativa o absoluta como entrada.
Sintaxis: pygame.image.load(img)
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500 )) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display # surface display_surface.blit(image,(100,100)) # updating the display pygame.display.flip()
Producción:
Agregar borrado
Para que una superficie se muestre, debe borrarse en la pantalla. Se puede pensar en el blitting como en copiar los píxeles de una superficie a otra. Podemos hacer blit usando el método surface.blit() que toma una superficie que necesita ser blit como primer argumento y la tupla de coordenadas como segunda coordenada.
Sintaxis: pygame.Superficie. blit(origen, destino, area=Ninguno, special_flags=0)
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500 )) # Creating the first image surface image1 = pygame.image.load('gfg_logo.png') # Creating the second image surface image2 = pygame.image.load('gfg_logo.png') # putting our first image surface on # display surface display_surface.blit(image1,(0,0)) # putting our second image surface on # display surface display_surface.blit(image1,(300,300)) # updating the display pygame.display.flip()
Producción:
Ahora que ya hemos discutido algunas funciones de superficie como .blit(), .fill(), etc. Analicemos algunas funciones más importantes de las pantallas de pygame.
- pygame.Surface.convert: Hace una copia de la superficie con el formato de píxel cambiado. El nuevo formato de píxel se puede determinar a partir de una superficie o profundidad existente, se pueden usar banderas y argumentos de máscaras.
Sintaxis : pygame.Surface.convert(Surface=Ninguno)
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # Creating the surface sample_surface = pygame.display.set_mode((400,300)) # changing the pixel format of an image pygame.Surface.convert(sample_surface) # updating the display pygame.display.flip()
Producción:
- pygame.Surface.convert_alpha: Crea una nueva copia de la superficie con el formato de píxel deseado. La nueva superficie estará en un formato adecuado para una transferencia rápida al formato dado con alfa por píxel. Si no se proporciona ninguna superficie, la nueva superficie se optimizará para mostrarse en la pantalla actual.
Sintaxis: pygame.Surface.convert_alpha(Superficie)
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # Creating the surface sample_surface = pygame.display.set_mode((400,300)) # changing the pixel format # of an image including per pixel alphas pygame.Surface.convert_alpha(sample_surface) # updating the display pygame.display.flip()
Producción:
- pygame.Surface.copy: Crea una nueva copia de la superficie. La superficie duplicada tendrá los mismos formatos de píxeles, paletas de colores, configuración de transparencia y clase que la original.
Sintaxis: pygame.Surface.copy()
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # Creating the surface sample_surface = pygame.display.set_mode((400,300)) # creating a copy of sample_surface # and naming it as copied_surface copied_surface=pygame.Surface.copy(sample_surface) # updating the display pygame.display.flip()
Producción:
- pygame.Surface.set_colorkey: establece la clave de color actual para la superficie. Al convertir esta superficie en un destino, cualquier píxel que tenga el mismo color que la clave de color será transparente.
Sintaxis: set_colorkey(Color, banderas=0)
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500 )) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface # making the white colored part # of the surface as transparent pygame.Surface.set_colorkey (image, [255,255,255]) display_surface.blit(image,(100,100)) # updating the display pygame.display.flip()
Producción:
El resultado del código anterior será el logotipo de geeksforgeeks en una superficie negra con un píxel de color blanco cambiado a transparente.
- pygame.Surface.get_colorkey: Devuelve el valor de clave de color actual para la superficie. Si la clave de color no está configurada, se devuelve Ninguno.
Sintaxis: get_colorkey()
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500)) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface # making the white colored part of the surface # as transparent pygame.Surface.set_colorkey(image, [255, 255, 255]) # printing the colorkey value for the surface print(pygame.Surface.get_colorkey(image)) display_surface.blit(image, (100, 100)) # updating the display pygame.display.flip()
Producción:
La salida del código anterior será una ventana que muestra varias superficies como se ve en el ejemplo de get_colorkey y también se imprimirá el valor de la clave de color.
- pygame.Surface.set_alpha: el valor alfa establecido para la imagen de superficie completa. Pase 0 para invisible y 255 para totalmente opaco.
Sintaxis: set_alpha(valor, banderas=0) o set_alpha(Ninguno)
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500 )) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface # making the alpha value of surface as 100 pygame.Surface.set_alpha(image, 100) display_surface.blit(image,(100,100)) # updating the display pygame.display.flip()
Producción:
El resultado del código anterior será el logotipo de geeksforgeeks, que será ligeramente transparente ya que hemos cambiado su valor alfa a 100.
- pygame.Surface.get_alpha: Devuelve el valor alfa actual de la superficie.
Sintaxis: get_alpha()
Código:
Python
# Importing the library import pygame # Initializing Pygame pygame.init() # creating the display surface display_surface = pygame.display.set_mode((500, 500 )) # Creating the image surface image = pygame.image.load('gfg_logo.png') # putting our image surface on display surface # making alpha value of image surface to 100 pygame.Surface.set_alpha(image, 100) # printing the alpha value of the surface print(pygame.Surface.get_alpha(image)) display_surface.blit(image,(100,100)) # updating the display pygame.display.flip()
Producción:
La salida del código anterior será una ventana que muestra varias superficies como se ve en el ejemplo set_alpha y también se imprimirá el valor alfa.
Publicación traducida automáticamente
Artículo escrito por yashgupta0524 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA