En nuestros juegos podemos añadir dos tipos de fondo: color o imagen. Veamos como:
Primero, importamos las librerías y asignamos valores iniciales a las variables que utilizaremos.
import pygame
pygame.init()
class Girl(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/girl.png").convert_alpha()
self.rect=self.image.get_rect()
ancho=800
alto=700
width=5
height=5
black=(0,0,0)
red=(255,0,0)
white=(255,255,255)
esmeralda=(87,181,190)
x=50
y=490
vel=0
salto=10
isJump=False
A continuación damos forma a la ventana
#Ventana y título
ventana = pygame.display.set_mode((ancho,alto))
pygame.display.set_caption('Saltando con imagen')
clock=pygame.time.Clock()
Cargamos una imagen para el fondo y guardamos cada impresión de la clase «girl» en una lista.
#------------Listas--------------
fondo =pygame.image.load("E:/NUEVO 2020/PYTHON/pygame/fondonubes.png").convert_alpha()
girl =Girl()
girlLista=pygame.sprite.Group()
girlLista.add(girl)
Abrimos el bucle y configuramos los eventos del teclado.
#/////////////////Bucle del juego/////////////////
gameOver=False
while not gameOver:
for event in pygame.event.get():
#----------- pulsar teclas y soltar tecla
if event.type == pygame.KEYDOWN: #Si pulso teclado añado velocidad
if event.key == pygame.K_LEFT:
vel=-3
if event.key == pygame.K_RIGHT:
vel=3
#Si no está en salto /////////////////
if event.key==pygame.K_SPACE:
isJump=True
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
vel=0
if event.key == pygame.K_RIGHT:
vel=0
if event.type == pygame.QUIT:
gameOver=True
Cada vez que pulsamos las teclas damos un nuevo valor a la coordenada X que sitúa el objeto. Si la variable isJump es TRUE cambiamos la coordenada Y. Esto pasa cuando pulsamos SPACE. Modificadas las coordenadas, llamamos a la clase con los nuevos valores.
#------------ LOGICA -------------------
x += vel
if isJump:
if salto>=-10:
y-=(salto*abs(salto))*0.5
salto-=1
else:
salto=10
isJump=False
girl.rect.x=x
girl.rect.y=y
Podemos utilizar dos tipos de fondo: color o imagen.
#-------------FONDO---------------------
#ventana.fill(esmeralda)
ventana.blit(fondo, [0,0])
Para que nuestro personaje salga delante del fondo debemos dibujarlo a continuación.
#------------ DIBUJO ------------------
pygame.draw.rect(ventana,red,(x,y,5,5))
ventana.blit(girl.image, [x,y])
girlLista.draw(ventana)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Este vídeo muestra como hacerlo…
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin