logo

Cómo desarrollar un juego en Python

El lenguaje más adaptable es Python, que se utiliza en casi todas las industrias, incluido el desarrollo de juegos, el desarrollo web, el aprendizaje automático, la inteligencia artificial y las aplicaciones GUI.

El juego se desarrolla utilizando el paquete pygame, que es una característica incorporada de Python. Con una comprensión rudimentaria de la programación Python, podemos crear juegos visualmente atractivos con animación, efectos de sonido y música adecuados utilizando el módulo pygame.

Para crear videojuegos se utiliza una biblioteca multiplataforma llamada Pygame. Tiene bibliotecas de sonido e imágenes por computadora para brindar al jugador una experiencia de juego típica.

Pete Shinners lo está desarrollando para reemplazar a PySDL.

Requisitos previos para Pygame

Necesitamos comprender el lenguaje de programación Python para poder aprender Pygame.

mysql mostrar usuarios

Instalación de Pygame

Para instalar Pygame, abra una terminal de línea de comandos e ingrese el siguiente comando.

java ordenando una lista de matrices
 pip install pygame 

También podemos instalarlo a través de IDE. Para obtener más guía de instalación, visite nuestro tutorial completo de pygame (https://www.javatpoint.com/pygame). Aquí encontrarás todas las explicaciones esenciales de pygame.

Ejemplo simple de Pygame

A continuación se muestra el siguiente ejemplo de creación de una ventana de pygame simple.

 import pygame pygame.init() screen = pygame.display.set_mode((400,500)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.display.flip() 

Producción:

Cómo desarrollar un juego en Python

Explicación:

El código proporcionado abre una ventana de Pygame de 400x500 píxeles e inicia un bucle que observa eventos todo el tiempo. El bucle cambia la variable 'hecho' a Verdadero, lo que finaliza el bucle y finaliza el programa si se detecta un evento QUIT (normalmente cuando el usuario sale de la ventana). Actualiza la pantalla y se asegura de que cualquier cambio se muestre en la pantalla gracias al método 'pygame.display.flip()'. Para decirlo brevemente, el código genera una pequeña ventana de Pygame que permanece activa hasta que el usuario la cierra, exhibiendo una estructura de programa básica controlada por eventos.

es grasa proteica

Todos los gráficos se dibujarán en la ventana de pygame.

Entendamos la sintaxis básica del programa anterior.

    importar pygame:Es el módulo que nos da acceso a todas las funciones de Pygame.calor():Se emplea para inicializar cada uno de los módulos necesarios del pygame.display.set_mode((ancho, alto)):Se emplea para ajustar el tamaño de la ventana. Devolverá el artículo a la superficie. Las acciones gráficas se realizan a través del objeto de superficie.evento.get():El resultado es una cola de eventos vacía. Si no lo llamamos, el sistema operativo percibirá que el juego no responde y los mensajes de la ventana comenzarán a acumularse.ABANDONAR:Cuando hacemos clic en el botón de cruz en la esquina de la ventana, se utiliza para descartar el evento.mostrar.flip():Cualquier actualización del juego se refleja en él. Debemos contactar con la pantalla cada vez que hagamos algún cambio. flip() es una función.

Se puede dibujar cualquier forma en la superficie de Pygame, incluidas hermosas fuentes e imágenes. Numerosos métodos integrados en Pygame te permiten dibujar formas geométricas en la pantalla. Estos formularios representan los primeros pasos en la creación de un juego.

Examinemos la siguiente ilustración de un formulario dibujado en una pantalla.

Ejemplo -

 import pygame from math import pi pygame.init() # size variable is using for set screen size size = [400, 300] screen = pygame.display.set_mode(size) pygame.display.set_caption('Example program to draw geometry') # done variable is using as flag done = False clock = pygame.time.Clock() while not done: # clock.tick() limits the while loop to a max of 10 times per second. clock.tick(10) for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked on close symbol done = True # done variable that we are complete, so we exit this loop # All drawing code occurs after the for loop and but # inside the main while done==False loop. # Clear the default screen background and set the white screen background screen.fill((0, 0, 0)) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.line(screen, (0, 255, 0), [0, 0], [50, 30], 5) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.lines(screen, (0, 0, 0), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5) # Draw a rectangle outline pygame.draw.rect(screen, (0, 0, 0), [75, 10, 50, 20], 2) # Draw a solid rectangle pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20]) # This draw an ellipse outline, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [225, 10, 50, 20], 2) # This draw a solid ellipse, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [300, 10, 50, 20]) # Draw a triangle using the polygon function pygame.draw.polygon(screen, (0, 0, 0), [[100, 100], [0, 200], [200, 200]], 5) # This draw a circle pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40) # This draw an arc pygame.draw.arc(screen, (0, 0, 0), [210, 75, 150, 125], 0, pi / 2, 2) # This function must write after all the other drawing commands. pygame.display.flip() # Quite the execution when clicking on close pygame.quit() 

Producción:

Cómo desarrollar un juego en Python

Explicación:

El programa Python proporcionado crea una ventana gráfica con diferentes formas geométricas dibujadas utilizando el paquete Pygame. El programa crea una ventana de Pygame de 400x300 píxeles y luego inicia un bucle que vigila los eventos todo el tiempo, asegurándose de que la ventana permanezca abierta hasta que el usuario la cierre. Limpia la pantalla al comienzo de este ciclo y luego usa las rutinas de dibujo de Pygame para crear una variedad de formas con diferentes colores y anchos de línea. Estas formas incluyen líneas, polígonos, elipses, círculos y arcos. Cada forma tiene sus propias coordenadas y propiedades definidas. Por último, 'pygame.display.flip()' se utiliza para actualizar la pantalla. El programa finaliza pygame al cerrar la ventana.

cómo rehacer en photoshop

La aplicación sirve como ejemplo de la adaptabilidad y variedad de las capacidades de dibujo de Pygame y proporciona un marco para desarrollar aplicaciones gráficas interactivas. Los desarrolladores pueden crear una amplia gama de componentes visuales dentro del entorno gráfico de Pygame ajustando parámetros como coordenadas, colores y anchos de línea. Esto permite la construcción de aplicaciones, juegos y simulaciones multimedia interactivas.

Ejemplo: desarrollo del juego Snake usando Pygame

Programa -

java convierte caracteres a int
 # Snake Tutorial Using Pygame import math import random import pygame import tkinter as tk from tkinter import messagebox class cube(object): rows = 20 w = 500 def __init__(self, start, dirnx=1, dirny=0, color=(255, 0, 0)): self.pos = start self.dirnx = 1 self.dirny = 0 self.color = color def move(self, dirnx, dirny): self.dirnx = dirnx self.dirny = dirny self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny) def draw(self, surface, eyes=False): dis = self.w // self.rows i = self.pos[0] j = self.pos[1] pygame.draw.rect(surface, self.color, (i * dis + 1, j * dis + 1, dis - 2, dis - 2)) if eyes: centre = dis // 2 radius = 3 circleMiddle = (i * dis + centre - radius, j * dis + 8) circleMiddle2 = (i * dis + dis - radius * 2, j * dis + 8) pygame.draw.circle(surface, (0, 0, 0), circleMiddle, radius) pygame.draw.circle(surface, (0, 0, 0), circleMiddle2, radius) # This class is defined for snake design and its movement class snake(object): body = [] turns = {} def __init__(self, color, pos): self.color = color self.head = cube(pos) self.body.append(self.head) self.dirnx = 0 self.dirny = 1 def move(self): for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() keys = pygame.key.get_pressed() # It will manage the keys movement for the snake for key in keys: if keys[pygame.K_LEFT]: self.dirnx = -1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_RIGHT]: self.dirnx = 1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_UP]: self.dirnx = 0 self.dirny = -1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_DOWN]: self.dirnx = 0 self.dirny = 1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] # Snake when hit the boundary wall for i, c in enumerate(self.body): p = c.pos[:] if p in self.turns: turn = self.turns[p] c.move(turn[0], turn[1]) if i == len(self.body) - 1: self.turns.pop(p) else: if c.dirnx == -1 and c.pos[0] = c.rows - 1: c.pos = (0, c.pos[1]) elif c.dirny == 1 and c.pos[1] &gt;= c.rows - 1: c.pos = (c.pos[0], 0) elif c.dirny == -1 and c.pos[1] <= 0 1 0: c.pos="(c.pos[0]," c.rows - 1) else: c.move(c.dirnx, c.dirny) def reset(self, pos): self.head="cube(pos)" self.body="[]" self.body.append(self.head) self.turns="{}" self.dirnx="0" self.dirny="1" # it will add the new cube in snake tail after every successful score addcube(self): dx, dy="tail.dirnx," tail.dirny if dx="=" and self.body.append(cube((tail.pos[0] 1, tail.pos[1]))) elif -1 + 1: self.body.append(cube((tail.pos[0], tail.pos[1] 1))) -1: self.body[-1].dirnx="dx" self.body[-1].dirny="dy" draw(self, surface): for i, c enumerate(self.body): i="=" c.draw(surface, true) c.draw(surface) drawgrid(w, rows, sizebtwn="w" rows x="0" y="0" l range(rows): draw grid line pygame.draw.line(surface, (255, 255, 255), (x, 0), w)) (0, y), (w, y)) this class define game surface redrawwindow(surface): global width, s, snack is used to surface.fill((0, 0, 0)) s.draw(surface) snack.draw(surface) drawgrid(width, surface) pygame.display.update() randomsnack(rows, item): positions="item.body" while true: len(list(filter(lambda z: z.pos="=" positions)))> 0: continue else: break return (x, y) # Using Tkinter function to display message def message_box(subject, content): root = tk.Tk() root.attributes(&apos;-topmost&apos;, True) root.withdraw() messagebox.showinfo(subject, content) try: root.destroy() except: pass # main() function def main(): global width, rows, s, snack width = 500 rows = 20 win = pygame.display.set_mode((width, width)) s = snake((255, 0, 0), (10, 10)) snack = cube(randomSnack(rows, s), color=(0, 255, 0)) flag = True clock = pygame.time.Clock() while flag: pygame.time.delay(50) clock.tick(10) s.move() if s.body[0].pos == snack.pos: s.addCube() snack = cube(randomSnack(rows, s), color=(0, 255, 0)) for x in range(len(s.body)): if s.body[x].pos in list(map(lambda z: z.pos, s.body[x + 1:])): print(&apos;Score: 
&apos;, len(s.body)) message_box(&apos;You Lost!
&apos;, &apos;Play again...
&apos;) s.reset((10, 10)) break redrawWindow(win) pass main() </=>

Producción:

Cómo desarrollar un juego en Python

Si la serpiente se toca, finalizará el juego y mostrará el siguiente mensaje.

Cómo desarrollar un juego en Python

Para reanudar, simplemente haga clic en el botón Aceptar. La terminal Pycharm muestra nuestra puntuación (usamos el IDE de Pycharm, pero usted puede usar cualquier IDE de Python).

Cómo desarrollar un juego en Python

Explicación:

El script Python proporcionado utiliza el paquete Pygame para crear un juego Snake sencillo. Establece clases tanto para la Serpiente como para los distintos cubos que componen su cuerpo. Pygame se utiliza para configurar la ventana del juego, que presenta una estructura de cuadrícula y una serpiente en movimiento. Después de comerse un cubo de 'bocadillo', la serpiente se alarga y, si choca contra sí misma o contra las paredes delimitadoras, el juego termina.

Para gestionar la dirección de la serpiente, generar bocadillos en puntos aleatorios de la cuadrícula, detectar colisiones entre la cabeza y el cuerpo de la serpiente, actualizar el estado del juego y volver a dibujar la ventana del juego, la lógica del juego debe manejar la entrada del usuario. Para controlar las interacciones del juego y las actualizaciones visuales, el script utiliza los métodos de dibujo y manejo de eventos de Pygame. También tiene una función básica de cuadro de mensajes que utiliza Tkinter para mostrar mensajes al jugador, como cuando pierde un juego. En general, el guión muestra ideas clave en la programación de juegos de Pygame y ofrece una interpretación rudimentaria del clásico juego Snake.