<-- Back to list of examples
"""
Sample Python/Pygame Programs
Simpson College Computer Science
http://programarcadegames.com/
http://simpson.edu/computer-science/
"""
import pygame
NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
class Protagonista(pygame.sprite.Sprite):
"""Esta clase representa la barra del fondo que controla el protagonista"""
# -- Métodos
def __init__(self,x,y):
"""Función Constructor"""
# Llama al constructor de la clase padre
super().__init__()
# Establecemos largo y alto
self.image = pygame.Surface([15, 15])
self.image.fill(NEGRO)
# Hacemos que la esquina superior izquierda sea la ubicación inicial.
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
# -- Atributos
# Establecemos la velocidad del vector
self.change_x = 0
self.change_y = 0
def cambiovelocidad(self,x,y):
"""Cambiamos la velocidad del protagonista"""
self.change_x += x
self.change_y += y
# Encontramos una posición nueva para el protagonista
def update(self):
self.rect.x += self.change_x
self.rect.y += self.change_y
# Llamamos esta función para que la biblioteca Pygame pueda iniciarse ella misma.
pygame.init()
# Creamos una pantalla de 800x600
pantalla = pygame.display.set_mode([800, 600])
# Establecemos el título de la ventana
pygame.display.set_caption('Ensayo')
# Creamos el objeto protagonista
protagonista = Protagonista(50, 50)
listade_todoslos_sprites = pygame.sprite.Group()
listade_todoslos_sprites.add(protagonista)
reloj = pygame.time.Clock()
hecho = False
while not hecho:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
hecho = True
# Ajustamos la velocidad según la tecla presionada
elif evento.type == pygame.KEYDOWN:
if evento.key == pygame.K_LEFT:
protagonista.cambiovelocidad(-3,0)
elif evento.key == pygame.K_RIGHT:
protagonista.cambiovelocidad(3,0)
elif evento.key == pygame.K_UP:
protagonista.cambiovelocidad(0,-3)
elif evento.key == pygame.K_DOWN:
protagonista.cambiovelocidad(0,3)
# Reseteamos la velocidad cuando la tecla es hacia arriba
elif evento.type == pygame.KEYUP:
if evento.key == pygame.K_LEFT:
protagonista.cambiovelocidad(3,0)
elif evento.key == pygame.K_RIGHT:
protagonista.cambiovelocidad(-3,0)
elif evento.key == pygame.K_UP:
protagonista.cambiovelocidad(0,3)
elif evento.key == pygame.K_DOWN:
protagonista.cambiovelocidad(0,-3)
# Esto mueve al bloque protagonista según la velocidad actual
listade_todoslos_sprites.update()
# -- Dibujamos todo
# Limpiamos la pantalla
pantalla.fill(BLANCO)
# Dibuja los sprites
listade_todoslos_sprites.draw(pantalla)
# Actualiza la pantalla
pygame.display.flip()
# Pausa
reloj.tick(60)
pygame.quit()