Pygame – Creando Sprites

Los sprites son objetos, con diferentes propiedades como altura, ancho, color, etc., y métodos como moverse hacia la derecha, izquierda, arriba y abajo, saltar, etc. En este artículo, buscamos crear un objeto en el que los usuarios puedan controlar eso. objeto y muévalo hacia delante, hacia atrás, hacia arriba y hacia abajo con las teclas de flecha.

Veamos primero nuestra primera clase, es decir, la clase en la que se define nuestro sprite, la llamaremos Sprite. Esta clase de Sprite define sus posiciones (coordenadas x e y), dimensión de un objeto, color, etc. Primero, llamaremos a nuestro método __init__() . Se llama constructor de una clase.

Ejemplo: Creando una clase de Sprite

Python3

import pygame
  
# GLOBAL VARIABLES
COLOR = (255, 100, 98)
SURFACE_COLOR = (167, 255, 100)
WIDTH = 500
HEIGHT = 500
  
# Object class
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()
  
        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)
  
        pygame.draw.rect(self.image,
                         color,
                         pygame.Rect(0, 0, width, height))
  
        self.rect = self.image.get_rect()

Ahora que se ha creado la clase, podemos crear objetos a partir de la clase. Nos permite crear tantos objetos como necesitemos usando la misma clase. Ahora crearemos un objeto usando nuestro Class Sprite. 

Sintaxis:

objeto = Sprite (ROJO, ANCHO, ALTO)

De forma predeterminada, el objeto estará en la posición (0,0), es decir, en la parte superior izquierda de la pantalla. Podemos cambiar las propiedades x e y del objeto.

Sintaxis:

objeto.rect.x = valor

objeto.rect.y = valor

Podemos definir n de sprites que queremos crear, pero a efectos de comprensión, simplifiquemos. Aquí hemos creado un sprite rectangular de ciertas dimensiones, sobre el cual podemos realizar diferentes operaciones para realizar sobre los sprites como avanzar, retroceder, saltar, ralentizar, acelerar, etc. 

Ejemplo: Crear sprite

Python3

import pygame
import random
  
# GLOBAL VARIABLES
COLOR = (255, 100, 98)
SURFACE_COLOR = (167, 255, 100)
WIDTH = 500
HEIGHT = 500
  
# Object class
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()
  
        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)
  
        pygame.draw.rect(self.image,color,pygame.Rect(0, 0, width, height))
  
        self.rect = self.image.get_rect()
  
  
pygame.init()
  
RED = (255, 0, 0)
  
size = (WIDTH, HEIGHT)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Creating Sprite")
  
all_sprites_list = pygame.sprite.Group()
  
object_ = Sprite(RED, 20, 30)
object_.rect.x = 200
object_.rect.y = 300
  
all_sprites_list.add(object_)
  
exit = True
clock = pygame.time.Clock()
  
while exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit = False
  
    all_sprites_list.update()
    screen.fill(SURFACE_COLOR)
    all_sprites_list.draw(screen)
    pygame.display.flip()
    clock.tick(60)
  
pygame.quit()

Producción:

Publicación traducida automáticamente

Artículo escrito por dev247kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *