Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a Python y la librería Pygame, Tesis de Bachillerato de Matemáticas

Este documento proporciona una introducción al lenguaje de programación python y la librería pygame, una biblioteca multiplataforma para el desarrollo de juegos y aplicaciones multimedia en 2d. Se explican las principales características y ventajas de python, así como las funcionalidades clave de pygame, incluyendo la manipulación de gráficos, sonido, eventos de entrada y otros elementos fundamentales para la creación de aplicaciones interactivas. El documento también aborda la estructura y los módulos principales de pygame, así como los objetos y tipos de datos más relevantes para el desarrollo de proyectos en este entorno. En general, este documento ofrece una visión general sobre python y pygame, lo que lo convierte en una lectura útil para estudiantes, programadores principiantes o cualquier persona interesada en aprender sobre estas herramientas de desarrollo de software.

Tipo: Tesis de Bachillerato

2020/2021

Subido el 18/09/2022

jabyer-bainisha
jabyer-bainisha 🇬🇹

5 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
JAVIER ALEJANDRO BONILLA HERRERA
QUINTO BACHILLERATO EN COMPUTACION A
TRABAJO BIMESTRAL
III BIMESTRE
PRODUCCION DE CONTENIDOS DIGITALES
TEMA DE TRABAJO
PYTHON
ESCUELA PARTICULAR JUSTO RUFINO BARRIOS
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Introducción a Python y la librería Pygame y más Tesis de Bachillerato en PDF de Matemáticas solo en Docsity!

JAVIER ALEJANDRO BONILLA HERRERA

QUINTO BACHILLERATO EN COMPUTACION “A”

TRABAJO BIMESTRAL

III BIMESTRE

PRODUCCION DE CONTENIDOS DIGITALES

TEMA DE TRABAJO

PYTHON

ESCUELA PARTICULAR JUSTO RUFINO BARRIOS

INTRODUCCION

Python es un lenguaje de programación interpretado de tipado dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma y disponible en varias plataformas.

empresas de Big Data. A nivel científico, tiene una gran biblioteca de recursos con especial énfasis en las matemáticas para aspirantes a programadores en áreas especializadas. Y si esto fuera poco, es posible crear videojuegos aunque no es tan eficiente como Java o C#. Python nació a principios de los 90 y, en un inicio, fue desarrollado como un hobby por Guido Van Rossum, un ingeniero holandés que trabajaba en ese momento en el CWI de Amsterdam, el Centro de Investigación de Ciencias de la Computación holandés y como curiosidad el nombre elegido, Python, fue tomado del grupo cómico británico Monty Python, del que Guido era un gran fan. Ventajas de programar en Python

  • Simplificado y rápido: Este lenguaje simplifica mucho la programación, es un gran lenguaje para scripting.
  • Elegante y flexible: El lenguaje ofrece muchas facilidades al programador al ser fácilmente legible e interpretable.
  • Programación sana y productiva: Es sencillo de aprender, con una curva de aprendizaje moderada. Es muy fácil comenzar a programar y fomenta la productividad.
  • Ordenado y limpio: es muy legible y sus módulos están bien organizados.
  • Portable: Es un lenguaje muy portable. Podemos usarlo en prácticamente cualquier sistema de la actualidad.
  • Comunidad: Cuenta con un gran número de usuarios. Su comunidad participa activamente en el desarrollo del lenguaje.

FUNCIONES PRINCIPALES DE PYGAME

Pygame (Python Game Library). Librería multiplataforma sobre SDL para Python para la implementacion de juegos y aplicaciones de multimedios en 2 dimensiones. Con sus clases y módulos brinda soporte al desarrollador para importar, tratar y exportar imágenes en varios formatos, IGC y formas básicos, efectos de sonido, reproducción de audio de fondo y CDs, reproducción de video MPEG, tratamiento de eventos de ratón, joystick, teclado, tiempo y otras facilidades que permite rápidez y efectividad para el programador, especialmente si se trata de grupos o empresas pequeños, así como la garantía de soporte para varios sistemas operativos, sin cambios en el código fuente o en la versión compilada para la Máquina virtual de Python. Python es un lenguaje que viene con un amplio grupo de módulos o librerías en las distribuciones estándares, las cuales a su vez se han ido desarrollando tanto por sí mismas como adecuándose a la evolución del lenguaje. Este grupo de librerías "estándares" brindan soluciones a aspectos generales de aplicación, por lo general bajo el concepto de portabilidad sin cambios en el código fuente. Sin embargo, no pueden abarcar todo el espectro de problemas que pudieran aparecer o garantizar la totalidad de integración con otras aplicaciones o plataformas de desarrollo que existen o van apareciendo. Es por ello que otros grupos desarrollan módulos para el soporte de nuevas funcionalidades o para integrar otras tecnologías al lenguaje. Hay que recordar que este lenguaje es de propósito general. Desde su creación en 1991, por Guido von Rossum, ha ido ganando constantemente aplicabilidad y por tanto, personas o grupos que producen librerías alternativas han ido generalizando sus soluciones hasta obtener robustos módulos que permiten a los desarrolladores soluciones ya predigeridas a las cuales solo hay que adaptar a una nueva situación particular. Uno de esos terrenos es el procesamiento de imágenes 2D, donde para Python existe PIL (Python Imaging Library) que es independiente de plataforma y se usa tanto por particulares, centros universitarios y de investigación, como por ejemplo en una de las extensiones de Gimp, pero no es la única y la programación de juegos y multimedias donde destaca en el caso de aquellos que se hacen de forma plana la librería Pygame.

También debe saberse que la estructura de programa que se sugiere para el trabajo con Pygame es el mismo que con otras de tipo ventana gráfica:

  • Inicialización de las características de Pygame y obtención de un objeto ventana o pantalla completa.
  • Preparación de objetos y condiciones para el procesamiento principal.
  • Bucle de control (normalmente infinito).
  • Manipulación de los eventos generados (normalmente con otro ciclo, porque los eventos normalmente se ponen en una secuencia tipo pila).
  • Redibujo de los elementos gráficos, el objeto ventana incluido.
  • Cambio de la vista actual por la que contiene el objeto ventana actualizado.
  • Otras actualizaciones para próxima vuelta del bucle principal.
  • Preparaciones para el cierre de la aplicación. Estas es solo una propuesta básica, por supuesto que la estructura puede variarse según las necesidades del desarrollador. MÓDULOS PRINCIPALES DE PYGAME Python Game Library tiene una serie de módulos bien definidos dentro del directorio "pygame" en "site-packages". Varios de hechos han sido volcados directamente al módulo raíz "init.py" con alias "pygame". Veamos los fundamentales:
  • pygame: Contiene el sistema de inicialización de los componentes de la librería, así como información sobre la versión de SDL y Pygame. También abstrae principalmente definiciones de constantes y clases de submódulos para hacer más simple el trabajo del programador.
  • cd: Librería para el control de CD/DVD.
  • cursors: Soporte para la creación y tratamiento de nuevos cursores creados por el usuario.
  • display: Esta librería engloba las funcionalidades para el trabajo con ventanas gráficas o distintos modos de video a pantalla completa, ambos tratables como objetos Surface.
  • draw: Los métodos de draw permiten el trazo de líneas y figuras dentro de objetos Surface.
  • event: Módulo que permite el tratamiento de eventos y generación de nuevos eventos hechos por el usuario. Es la base para el tratamiento de los dispositivos de entrada como ratón, teclado, joystick, etc.
  • font: Manipulación y dibujo de textos formateados a partir de archivos de fuente TrueType y otras.
  • image: Contiene funcionalidades para la adquisición de instancias Surface a partir de archivos de imagen o cadenas formateadas, también se implementan macanismos de salva o reconversión de formatos de archivos de imagen y cadenas.
  • joystick: Control del dispositivo universal de juegos.
  • key: Procesamiento y control del teclado.
  • mask: Tratamiento de máscaras. De utilidad para saber con exactitud la coincidencia de dos o más elementos gráficos.
  • midi: Control de E/S de dispositivos MIDI.
  • mixer: Tratamiento de efectos de sonido, fundamentalmente asociados a acciones de los dispositivos de entrada o sonidos de error. Actualmente soporta "WAV" sin comprimir y "OGG" (recomendado por compatibilidad multiplataforma).
  • mouse: Soporte para el mouse, configuración de su comportamiento y representación: el cursor.
  • movie: Solo contiene la definición de la clase Movie para la reproducción de archivos de video MPEG1. Nota: para reproducir video, deben detenerse las secuencias de audio de mixer y mixer.music.
  • music: Es un submódulo de mixer para la reproducción background de listas de archivos de música MP3 y OGG.
  • scrap: Trabajo con el clipboard.
  • sprite: Colección de funcionalidades y clases para el trabajo con sprites.
  • time: Funciones para acciones de tiempo y control del temporizador de eventos.
  • transform: Librería de métodos de transformaciones básicas sobre objetos Surface: redimensionado, rotaciones, volteos, etc. OBJETOS DE PYGAME pygame y sus submódulos definen una serie de clases de objetos que permiten gran libertad y comodidad al programador de la plataforma Pygame. De ellas se relacionan las siguientes:
  • Surface.
  • Rect.
  • Font y SysFont.
  • Event.
  • Color.
  • Sound.
  • Movie.

CLASE RECT.

La clase Rect es un refinamiento provisto por Pygame para el tratar el movimiento, toda vez que cualquier elemento gráfico Surface tiene asociado un rectangulo que lo contiene y define sus dimensiones, centro, bordes, etc. A la hora de pintar una instancia de Surface en otra mediante blit, la posición puede ser dada también como un objeto Rect. Variando sus coordenadas progresivamente el objeto es dibujado en una nueva posición creando gracias a la persistencia retiniana la ilusión de movimiento que utiliza el cine de animación. CLASE COLOR. Aunque la idea básica de Pygame para el tratamiento de color es la forma RGB en una tripla (R, V, A) o una cuádrupla (R, V, A, O), donde:

  • R: Componente roja del píxel (0 .. 255).
  • V: Componente verde (0 .. 255).
  • A: Componente azul (0 .. 255).
  • O: Opacidad (0 .. 255). 0 es transparente, 255 es totalmente opaco. Existen otras representaciones de color como CMY, HSVA, I1I2I3, colores Web y representación de enteros RGB ó ARGB, cada una con sus ventajas y desventajas. Los objetos Color son una solución para tratar todos esos casos en un solo objeto. El constructor toma las formas siguientes:
  • pygame.Color(nombre_color) para los nombres de color para HTML.
  • pygame.Color(entero) para las representaciones de RGB, RGBA (preferiblemente para Pygame como ARGB), visto en hexadecimal Python como 0xrrggbb, donde cada letra es una cifra hexadecimal. Si se quisiera tener informacion de opacidad y el valor de la misma sobrepasa 127 hay que hacer un pequeño truco, de lo contrario Python cambia de entero a entero largo y el número deja de ser representativo para el color.
  • pygame.Color(R, V, A) ó pygame.Color(R, V, A, O), donde las letras vienen dadas por los valores y significados vistos antes.
  • pygame.Color(tuple|list) secuencias de 3 ó 4 valores RGB ó RGBA respectivamente.

CONCLUSION

Python ha ido subiendo peldaños con el paso de los años, ganando una gran popularidad y haciendo temblar a aquellos lenguajes que parecían que se iban a quedar para siempre. Es un lenguaje facil de aprender e ideal para aquellos programadores que se estan iniciando. Tiene una gran variedad y un sin fin de usos, cuenta con una comunidad muy activa, lo que garantiza que el lenguaje se mantendrá actualizado con el paso del tiempo, y que surgirán nuevas librerías que nos permitirán ahorrar tiempo y trabajo.