Tabla de contenido:

Crea tu primer juego de carreras: 10 pasos
Crea tu primer juego de carreras: 10 pasos

Video: Crea tu primer juego de carreras: 10 pasos

Video: Crea tu primer juego de carreras: 10 pasos
Video: Tutorial Multiplayer Unity - Karting Microgame - Como hacer un juego de carreras en español 2024, Mes de julio
Anonim
Image
Image
Imagen
Imagen

Si ha hecho algo de codificación en Python y quería escribir un juego, es posible que tenga en Pygame Zero.

En este tutorial escribiremos un sencillo juego de carreras.

Paso 1: Descripción general general

El módulo Pygame agrega muchas funciones que te ayudan a escribir juegos en Python.

Pygame Zero va un paso más allá para permitirte saltarte el engorroso proceso de hacer todos esos bucles de juego y configurar la estructura de tu programa.

Pygame Zero es una excelente opción para cualquiera que quiera comenzar a escribir juegos de computadora en Raspberry Pi o en cualquier máquina Linux.

Necesitarás:

  • Máquina que ejecuta el sistema operativo Linux
  • Editor para escribir el programa Python
  • Teclado
  • Algo de imaginación

Archivos:

github.com/AhmNouira/-Racing-Game

Paso 2: requisitos previos

Primero usaré mi computadora portátil con el sistema operativo Ubuntu 18.04. Luego, ejecutaremos el juego en Raspberry Pi en el paso 8.

Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.

Instalación de pip para Python 3

Empiece por actualizar la lista de paquetes con el siguiente comando:

actualización de sudo apt

Utilice el siguiente comando para instalar pip para Python 3:

sudo apt instalar python3-pip

Verifique la instalación comprobando la versión de pip:

pip3 --versión

Instalación de Pygame Zero

pip3 install pgzero --usuario

Esto también instalará Pygame. Paquetes de Pygame precompilados

Entonces, el primer paso en su viaje será abrir Python 3 IDLE o su editor de Python favorito.

Paso 3: "Hola mundo" en Pygame Zero

De forma predeterminada, la ventana de Pygame Zero se abre con un tamaño de 800 píxeles de ancho por 600 píxeles de alto. Puedes personalizar

el tamaño de su ventana, hay dos variables predefinidas que puede establecer, si incluye ANCHO = 700 ALTO = 800.

Pygame zero proporciona funciones predefinidas para manejar el ciclo del juego que normalmente realiza:

La función draw ()

Podemos escribir esta función en nuestro programa de la misma manera que normalmente definiríamos una función en Python.

Pygame Zero sigue las mismas reglas de formato que Python, por lo que deberá tener cuidado de sangrar su código correctamente.

#! / usr / bin / python3 # establece el intérprete

import pgzrun # import pgzero module WIDTH = 700 # ancho de la ventana HEIGHT = 800 # altura de la ventana def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # llena la pantalla con RGB color screen.draw.text ("¡Hola mundo!", (270, 320), # dibujar "¡Hola mundo!" color = (255, 255, 255), tamaño de fuente = 40) pgzrun.go ()

En primer lugar, debe guardar su archivo de programa y darle un nombre.

Luego abra una ventana de Terminal, vaya a la ubicación de su archivo y escriba:

./.py

Paso 4: Dibujar a tu actor

Dibujando a tu actor
Dibujando a tu actor

Ahora que tenemos nuestro escenario, podemos crear nuestros Actores, son objetos dinámicos en Pygame Zero.

Podemos cargar un actor escribiendo en la parte superior del programa:

car = Actor ("coche de carreras")

En Pygame Zero, nuestras imágenes deben almacenarse en un directorio llamado images, al lado de nuestro archivo de programa, por lo que nuestro Actor estaría buscando un archivo de imagen en la carpeta de imágenes llamado racecar.png. Puede ser un archivo-g.webp

Puede establecer su posición en la pantalla escribiendo:

car.pos = 350, 560

Después de eso, en nuestra función draw () podemos escribir

car.draw () # dibuja nuestro auto de carrera en su posición definida

El programa completo será así:

#! / usr / bin / python3

import pgzrun WIDTH = 700 # ancho de la ventana HEIGHT = 800 # altura de la ventana car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # llena la pantalla con car.draw () pgzrun.go ()

Pruebe su programa para asegurarse de que esté funcionando.

Paso 5: controla al actor

Controla al actor
Controla al actor

Una vez que tenemos nuestro coche dibujando en la pantalla, la siguiente etapa es permitir que el jugador lo mueva.

Podemos hacer esto presionando las teclas. Podemos leer el estado de estas claves dentro de otra función predefinida llamada update ().

La función update ()

Esta función se comprueba continuamente mientras se ejecuta el juego.

Necesitamos escribir algún código para detectar pulsaciones de teclas de flechas y también para hacer algo al respecto.

Entonces agregaremos esta función a nuestro programa

def actualizar ():

if keyboard.left: car.x - = 2 si keyboard.right: car.x + = 2 si keyboard.up: car.y - = 2 si keyboard.down: car.y + = 2

Estas líneas de código moverán el actor del automóvil hacia la izquierda, derecha, adelante y atrás.

Paso 6: construcción de la pista

Construyendo la pista
Construyendo la pista

Ahora que tenemos un coche que podemos conducir, necesitamos una pista para que siga.

Vamos a construir nuestra pista con Actores, una fila a la vez. Tendremos que hacer algunas listas para realizar un seguimiento de los actores que creamos.

También necesitaremos configurar algunas variables más para la pista.

Entonces hagamos una nueva función llamada makeTrack (). La función agregará un actor de pista a la izquierda y otro a la derecha, ambos usando la imagen bare-p.webp

trackLeft = # lista para almacenar restricciones izquierdas

trackRight = # lista para almacenar las barreras derechas trackCount = 0 # cuente el número de barreras trackPosition = 350 trackWidth = 150 # ancho entre las barreras izquierda y derecha def makeTrack (): # función para hacer una barrera a la izquierda y derecha global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("desnudo", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("desnudo", pos = (trackPosition + trackWidth, 0))) trackCount + = 1

Lo siguiente que debemos hacer es mover las secciones de la pista hacia abajo en la pantalla hacia el automóvil.

Vamos a escribir una nueva función llamada updateTrack (), esta función actualiza donde aparecerán los bloques de pista. Las piezas de pista se crean mediante números aleatorios, por lo que cada reproducción es diferente.

trackDriction = Falso

SPEED = 4 # establece la velocidad del juego desde la importación aleatoria randint # importa la clase randint desde el módulo aleatorio def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: si trackDirection == False: trackPosition + = 16 si trackDirection == True: trackPosition - = 16 si randint (0, 4) == 1: trackDirection = no trackDirection si trackPosition> 700 - trackWidth: trackDirection = True si trackPosition < trackWidth: trackDirection = False makeTrack () # crea una nueva pista en la parte superior de la pantalla

Consulte el archivo zip a continuación llamado "RaceGameDemo".

Si ejecutamos nuestro código en este momento, deberíamos ver una pista serpenteando hacia el automóvil. El único problema es que podemos mover el automóvil sobre las barreras de la vía y queremos mantener el automóvil dentro de ellas con alguna detección de colisión.

Paso 7: accidente automovilístico

Accidente automovilístico
Accidente automovilístico
Accidente automovilístico
Accidente automovilístico
Accidente automovilístico
Accidente automovilístico

Tenemos que asegurarnos de que nuestro coche no toque los actores de la pista.

también podemos probar las colisiones usando el método colliderect () en nuestra función updateTrack ().

En este juego tendremos tres estados diferentes al juego almacenados en nuestra variable gameStatus:

  • gameStatus == 0 # el juego se está ejecutando
  • gameStatus == 1 # accidente automovilístico
  • gameStatus == 2 # juego terminado

Necesitaremos cambiar nuestra función draw () y nuestra función update () para responder a la variable gameStatus.

Últimos retoques

Todo lo que tenemos que hacer ahora es mostrar algo si gameStatus está configurado en 1 o 2, por ejemplo, deberíamos mostrar un rojo

bandera, si el coche choca. Podemos hacerlo con el siguiente código:

screen.blit ("bandera roja", (230, 230))

Para ver si el coche ha llegado a la meta, debemos contar cuántas secciones de la pista se han creado y luego quizás cuando lleguemos a 200, establecer gameStatus en 2 y luego mostrar la bandera a cuadros:

screen.blit ("indicador de acabado", (230, 230))

También mostraremos algún texto en la pantalla como la puntuación actual del juego.

Eche un vistazo a la lista completa de códigos para ver cómo encaja todo esto.

Paso 8: Ejecuta el juego en Raspberry Pi

Ejecuta el juego en Raspberry Pi
Ejecuta el juego en Raspberry Pi
Ejecuta el juego en Raspberry Pi
Ejecuta el juego en Raspberry Pi

En Raspberry Pi, pgzero se ha instalado de forma predeterminada desde el lanzamiento de Raspbian Jessie en septiembre de 2015.

Simplemente actualice su Raspberry Pi usando el comando:

sudo apt-get update

Vaya a la ubicación de su archivo y escriba en la Terminal.

pgzrun.py

Paso 9: ¿Ganaste?

¿Ganaste?
¿Ganaste?

Puede hacer el juego más fácil o más difícil cambiando la variable trackWidth para hacer que la pista tenga un ancho diferente. Puede cambiar el valor de SPEED para hacer que la pista se mueva más rápido o más lento.

Paso 10: Conclusión

Pygame Zero es una excelente opción para cualquiera que quiera comenzar a escribir juegos de computadora.

Si tiene alguna pregunta, por supuesto, puede dejar un comentario. Para ver más sobre mis trabajos, visite mi canal:

myYouTube

mi Twitter

myLinkedin

Gracias por leer este instructivo ^^ y que tengas un buen día. Nos vemos. Ahmed Nouira.

Recomendado: