[Python] Crear Cuadro y Moverlo con las Flechas en Pygame

Vamos a hacer un pequeño juego en pygame con python, donde vamos a crear un cadro azul y lo vamos a mover por la pantalla usando las flechas del teclado.

No todo en la vida es puro backend, servidores, etc… esta vez vamos a divertirnos y a entretenernos con este ejemplo, usando pygame, este ejemplo esta pensado para ser usado mas adelante en otros proyectos/ejemplos.

Pygame es un framework para crear juegos o aplicaciones multimedia en python.

Pygame nos permite manejar graficos, teclado, sonido y mouse, entre otras cosas.

En este ejemplo vamos a mover un cuadro con el teclado.

Instalacion

Para instalar Pygame tenemos que instalarlo con el instalador de paquetes de Python pip.

pip install pygame

Hecho esto ya podemos correr cualquier programa programado con pygame.

Codigo

El codigo le agregue comentarios para que le entiendan a cada seccion.

import pygame
import random 
# la clase player tiene las caracteristicas de un jugador o elemento del juego
# se pueden crear varios
class Player(pygame.sprite.Sprite):
    def __init__(self, x, y):
        super().__init__()
        self.image = pygame.Surface([50, 50])
        self.image.fill(    (0, 200, 200))
        self.rect = self.image.get_rect()
        self.rect.topleft = (x, y)
# iniciamos pygame
pygame.init()
# definimos lo ancho y alto de nuestra ventana de juego
WIDTH, HEIGHT = 540 , 960
myfont = pygame.font.SysFont('monospace', 20)
# obtenemos la instancia de la pantalla
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Pygame 2")
clock = pygame.time.Clock() # el reloj para pbtener los ticks o frames

player_sprite = Player( WIDTH/2 , HEIGHT/2) # posicionamos el jugador en el centro de la pantalla

all_sprites = pygame.sprite.Group() # creamos un grupo para los sprites
all_sprites.add(player_sprite) # agregamos el jugador al grupo

while True:

    for event in pygame.event.get():
        # si cerramos el juego se liberan los recursos
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()
        # Verificamos si se presiono una tecla
        if event.type == pygame.KEYDOWN:
            # si se presiona la tecla fecha para la izquierda
            if event.key == pygame.K_LEFT:
                if player_sprite.rect.x > 0:
                    player_sprite.rect.x -= 10
            # si se presiona la tecla fecha para la derecha
            if event.key == pygame.K_RIGHT:
                if player_sprite.rect.x < WIDTH - player_sprite.rect.width:
                    player_sprite.rect.x += 10  
            # si se presiona la tecla fecha para arriba
            if event.key == pygame.K_UP:
                if player_sprite.rect.y > 0:
                    player_sprite.rect.y -= 10
            # si se presiona la tecla fecha para abajo
            if event.key == pygame.K_DOWN:
                if player_sprite.rect.y < HEIGHT - player_sprite.rect.height:
                    player_sprite.rect.y += 10
            print("Player position:", player_sprite.rect.y)


    # pintamos la pantalla de negro
    screen.fill((0, 0, 0))
    # dibujamos todos los sprites
    all_sprites.draw(screen)
    # actualizamos la pantalla
    pygame.display.flip()
    # esperamos
    clock.tick(30)

Y para ejecutar el codigo usamos el comando de python “py” o “python3” segun la instalacion de python que tengas, a mi archivo le puse pygame2.py asi que lo ejecuto.

py pygame2.py

Y el resultado es el siguiente:

Tenemos la pantalla en negro y el cuadro azul que es nuestro jugador en azul, presionamos las flechas del teclado y lo podremos mover arriba, abajo, izquierda, derecha 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading