Skip to content

En este repositorio contiene el código para un video tutorial sobre cómo crear una simulación de caída de arena usando Python y Pygame, además de programación POO.

Notifications You must be signed in to change notification settings

nvarona/simulador-arena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simulación de caída de arena con Pygame

Este repositorio contiene el código para un video tutorial sobre cómo crear una simulación de caída de arena usando Python y Pygame, ademas de programacion POO.

Tutorial

Vista previa de simulación de caída de arena

Overview

En este tutorial, crearemos una simulación interactiva de caída de arena desde cero. El tutorial te guiará paso a paso, desde la configuración de la cuadrícula hasta la implementación de diversos comportamientos de partículas, como la caída de arena y rocas inamovibles. A lo largo del camino en el README_dsv.md, aprenderás programación en Python, conceptos básicos de Pygame y técnicas de diseño de simulaciones.

Features

  • Física de partículas realista: Las partículas de arena caen de forma natural e interactúan con las rocas para formar patrones realistas.
  • Múltiples tipos de partículas: Agrega arena, rocas o borra partículas usando diferentes modos.
  • Herramientas interactivas: Usa el mouse y el teclado para agregar, eliminar y modificar partículas de manera dinámica.
  • Tamaño de pincel personalizable: Crea patrones más grandes con la herramienta de pincel ajustable.
  • Información dinámica del cursor: Un cursor personalizado indica la herramienta y el modo seleccionados.
  • Rendimiento optimizado: Las actualizaciones basadas en cuadrículas garantizan una simulación fluida incluso con muchas partículas.

Estructura del Codigo

  • main.py: El punto de entrada del proyecto. Configura la ventana de Pygame, maneja la entrada del usuario y administra la simulación.
  • grid.py: Contiene la clase Grid, que administra la cuadrícula de partículas y sus actualizaciones.
  • particle.py: Define las clases SandParticle y RockParticle, junto con sus comportamientos y propiedades.
  • simulation.py: Contiene la clase Simulation, que integra todos los componentes y maneja las interacciones.
  • utils.py: Contiene las funciones auxiliares para la simulación.

Como ejecutar el programa de simulación

  1. Descargar o Clonar este repositorio:

    git clone https://github.com/nvarona/simulador-arena.git
    cd simulador-arena
  2. Asegúrate de tener instalados Python y Pygame. Instala Pygame con pip:

    pip install pygame
  3. Ejecute el script main.py:

    python main.py

Pasos del Proyecto

Este proyecto se divide en 10 pasos:

  1. Instalar Pygame: Configurar el entorno e instalar la biblioteca Pygame.
  2. Crear la ventana y el bucle de simulación: Configurar la ventana Pygame y definir el bucle de simulación.
  3. Construir la cuadrícula: Crear una cuadrícula bidimensional para gestionar partículas.
  4. Agregar partículas de arena: Implementar la clase SandParticle y su representación visual.
  5. Agregar lógica de simulación: Definir cómo caen las partículas e interactúan con su entorno.
  6. Optimizar el rendimiento: Refactorizar el bucle de simulación para lograr una mayor eficiencia.
  7. Agregar controles de teclado: Utilizar teclas para cambiar entre los modos Arena, Roca y Borrador.
  8. Agregar partículas de roca: Introducir rocas inamovibles que interactúen con la arena.
  9. Agregar herramienta Borrador: Implementar una herramienta para eliminar partículas de forma dinámica.
  10. Agregar un indicador de cursor: Muestra un cursor dinámico que representa la herramienta seleccionada.

Controles

He creado una primera pantalla de inicio donde podemos modificar algunos de los parametros de la simulación, como tamaño de ventana o tamaño de la celda, asi como el modo en el que comenzaremos la simulación en modo Arena o Roca.

A su vez en la pantalla de visulización de la simulacion tenemos unos controles para interactuar con las configuraciones, ademas de un indicador de cursor/pincel y un indicador de modo en el que estamos para ser más explicito.

  • Clic izquierdo/derecho del mouse: Agrega partículas o bórralas según el modo actual. (en función del SO)
  • Teclas del teclado:
    • A: Cambia al modo Arena.
    • R: Cambia al modo Roca.
    • B: Cambia al modo Borrador.
    • Barra espaciadora: Borra toda la cuadrícula.

Dependencias

  • Python 3.x
  • Pygame (Se recomienda Community Edition para un mejor rendimiento)

About

En este repositorio contiene el código para un video tutorial sobre cómo crear una simulación de caída de arena usando Python y Pygame, además de programación POO.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages