Este documento presenta una introducción al framework PyGame para el desarrollo de videojuegos en Python. Explica brevemente la historia y funcionalidad de PyGame, cómo instalarlo en Windows y Linux, y proporciona un pequeño ejemplo de código de una pelota rebotando en la pantalla para demostrar su facilidad de uso.
Este documento describe la evolución de los microprocesadores desde su creación en 1971 hasta la década de 1980. Comienza explicando qué es un microprocesador y cómo se compone. Luego resume los hitos más importantes en el desarrollo de los microprocesadores, incluyendo el Intel 4004 de 1971, el Intel 8080 de 1974, el Motorola 6800 de 1975, el Z80 de 1976, el Intel 8088 de 1978 que impulsó el IBM PC, el Intel 80286 de 1982, el Intel 80386 de 1985 y el Intel 80486 de 1989.
El documento proporciona instrucciones para ensamblar una PC describiendo los 19 pasos requeridos. Se enumeran los componentes necesarios y se explica cómo instalar la fuente de alimentación, procesador, memoria RAM, ventilador, placa base, discos duro y óptico, tarjeta gráfica y realizar las conexiones necesarias.
Este documento describe los diferentes tipos de placas madre y sus características. Explica que la placa madre conecta los componentes principales de una computadora y que existen diferentes estándares de factor de forma como ATX, Micro-ATX y Mini-ATX. También describe elementos clave de una placa madre como el zócalo del procesador, el chipset, puertos como AGP y PCI, e interfaz SATA. Finalmente, explica brevemente diferentes clases históricas de placas madre como Baby AT, ATX y LPX.
The document provides an overview of Das U-Boot, a universal boot loader used to load operating systems and applications into memory on embedded systems. It discusses U-Boot's features such as its command line interface, ability to load images from different sources, and support for various architectures and boards. It also covers compiling and configuring U-Boot, as well as its basic command set and image support capabilities.
Informe de desensamble y ensamble de la pcwaltergentil96
Este documento describe los pasos para desensamblar y ensamblar una computadora personal (PC). Explica los objetivos de aprender a manipular correctamente las partes internas de una PC y los riesgos asociados como descargas eléctricas o daños a las partes. Luego detalla las herramientas necesarias y los pasos a seguir para desensamblar la PC, como desconectar cables y retirar tarjetas y unidades. Finalmente, resume los pasos para volver a ensamblar la PC correctamente.
El desarrollo de los procesadores comenzó con la comprensión de la electricidad a principios del siglo XX pero no fue hasta la década de 1960 que los científicos pudieron implementar estas ideas. Los procesadores modernos contienen millones de transistores empaquetados en una cápsula y su velocidad se mide en megahertz y gigahertz, aunque comparar velocidades entre marcas no determina necesariamente qué procesador es más rápido. Los principales fabricantes de procesadores son Intel y AMD.
El documento proporciona instrucciones paso a paso para ensamblar una computadora, incluyendo cómo instalar la fuente de energía, la tarjeta madre, la CPU, la memoria RAM, las tarjetas de expansión, las unidades internas como el disco duro y la unidad óptica, y finalmente conectar todos los cables internos antes de cerrar la carcasa.
Este documento describe la evolución de los microprocesadores desde su creación en 1971 hasta la década de 1980. Comienza explicando qué es un microprocesador y cómo se compone. Luego resume los hitos más importantes en el desarrollo de los microprocesadores, incluyendo el Intel 4004 de 1971, el Intel 8080 de 1974, el Motorola 6800 de 1975, el Z80 de 1976, el Intel 8088 de 1978 que impulsó el IBM PC, el Intel 80286 de 1982, el Intel 80386 de 1985 y el Intel 80486 de 1989.
El documento proporciona instrucciones para ensamblar una PC describiendo los 19 pasos requeridos. Se enumeran los componentes necesarios y se explica cómo instalar la fuente de alimentación, procesador, memoria RAM, ventilador, placa base, discos duro y óptico, tarjeta gráfica y realizar las conexiones necesarias.
Este documento describe los diferentes tipos de placas madre y sus características. Explica que la placa madre conecta los componentes principales de una computadora y que existen diferentes estándares de factor de forma como ATX, Micro-ATX y Mini-ATX. También describe elementos clave de una placa madre como el zócalo del procesador, el chipset, puertos como AGP y PCI, e interfaz SATA. Finalmente, explica brevemente diferentes clases históricas de placas madre como Baby AT, ATX y LPX.
The document provides an overview of Das U-Boot, a universal boot loader used to load operating systems and applications into memory on embedded systems. It discusses U-Boot's features such as its command line interface, ability to load images from different sources, and support for various architectures and boards. It also covers compiling and configuring U-Boot, as well as its basic command set and image support capabilities.
Informe de desensamble y ensamble de la pcwaltergentil96
Este documento describe los pasos para desensamblar y ensamblar una computadora personal (PC). Explica los objetivos de aprender a manipular correctamente las partes internas de una PC y los riesgos asociados como descargas eléctricas o daños a las partes. Luego detalla las herramientas necesarias y los pasos a seguir para desensamblar la PC, como desconectar cables y retirar tarjetas y unidades. Finalmente, resume los pasos para volver a ensamblar la PC correctamente.
El desarrollo de los procesadores comenzó con la comprensión de la electricidad a principios del siglo XX pero no fue hasta la década de 1960 que los científicos pudieron implementar estas ideas. Los procesadores modernos contienen millones de transistores empaquetados en una cápsula y su velocidad se mide en megahertz y gigahertz, aunque comparar velocidades entre marcas no determina necesariamente qué procesador es más rápido. Los principales fabricantes de procesadores son Intel y AMD.
El documento proporciona instrucciones paso a paso para ensamblar una computadora, incluyendo cómo instalar la fuente de energía, la tarjeta madre, la CPU, la memoria RAM, las tarjetas de expansión, las unidades internas como el disco duro y la unidad óptica, y finalmente conectar todos los cables internos antes de cerrar la carcasa.
El documento proporciona información sobre la memoria RAM (Random Access Memory) en computadoras. Explica que hay dos tipos básicos de RAM: dinámica (DRAM) y estática (SRAM). Luego detalla las características y evolución de los módulos de memoria como SIMM, DIMM, DDR, DDR2 y DDR3. Finalmente, incluye preguntas sobre conceptos relacionados a la memoria RAM como su función, unidades de medida, capacidades disponibles y costo.
El documento presenta una infografía sobre las partes principales de una placa base. Explica brevemente cada componente clave como el procesador, memoria RAM, puertos SATA, ranuras PCI, chipset norte y sur, y cómo estos elementos se conectan y permiten el funcionamiento del ordenador.
El documento describe la plataforma Arduino, incluyendo diferentes modelos como Arduino Uno, Mega y Lilypad. Explica características como el microcontrolador, voltaje, pines de E/S, memoria y velocidad de reloj para cada modelo. También cubre conceptos como programación en Arduino, uso de librerías, y cómo expandir funcionalidad mediante shields.
The document discusses the benefits of meditation for reducing stress and anxiety. Regular meditation practice can help calm the mind and body by lowering heart rate and blood pressure. Studies have shown that meditating for just 10-20 minutes per day can have significant positive impacts on both mental and physical health over time.
Exposición sobre la placa madre de la computadoraIng-Ervens
aquí está una exposición sobre la placa base del ordenador realizada por tres estudiantes de Ingenieria de sistemas de Informacion de la Universidad APEC...
Este documento resume tres tipos de tarjetas de expansión para computadoras: tarjetas de video, tarjetas de sonido y tarjetas de red. Las tarjetas de video procesan y mejoran la capacidad gráfica, las tarjetas de sonido permiten la entrada y salida de audio, y las tarjetas de red conectan la computadora a una red y controlan el flujo de datos.
Este documento compara los microprocesadores Intel y AMD. Resalta que aunque Intel ha estado en el mercado por más de 3 décadas, AMD sacó los primeros procesadores de 64 bits y lidera en tecnología. Para velocidad e incluso edición de videos, AMD es mejor, mientras que Intel es más estable. En general, ninguna marca es claramente superior para todas las tareas.
El documento proporciona información sobre tarjetas de video y tarjetas de sonido. Explica que las tarjetas de video convierten las señales del procesador en señales de video para la pantalla, mientras que las tarjetas de sonido permiten la entrada y salida de audio. Luego describe características clave como la resolución y velocidad de las tarjetas de video, y los componentes y funciones de las tarjetas de sonido como el procesador de señales digitales y los convertidores digital-analógico.
The document discusses various computer interfaces and bus architectures. It describes interfaces such as USB, FireWire, SCSI, IDE, SATA, serial/parallel, analog/digital. It also covers different types of computer buses like ISA, EISA, PCI, AGP, and system buses. Peripheral devices connect to computers via these various interfaces and buses.
Este documento describe la estructura modular de las computadoras. Explica que tienen una estructura externa compacta o modular y una estructura interna que incluye memoria, CPU, unidades de entrada/salida e interfaces. Además, cubre equipos de programación y dispositivos periféricos.
Componentes externos e internos de una portatil cyntislore
Este documento describe los componentes externos e internos de una computadora portátil. Explica los componentes externos como la batería, puertos USB y de video. También detalla los componentes internos clave como la CPU, memoria RAM, unidad de disco duro y tarjeta de video. El documento concluye que los avances tecnológicos han hecho que las computadoras portátiles sean una herramienta útil para el trabajo y la vida cotidiana.
Este documento resume la evolución de los procesadores CISC desde 1971 hasta 2003. Comienza con el Intel 4004 de 4 bits en 1971 y continúa describiendo procesadores posteriores como el Intel 4040, MOS 6502, WDC 65C02, AVR, Intel 8085 e Intel 8088. Luego cubre procesadores de los años 80 y 90 como el Motorola 6809, Intel 80188, ARM2, SPARC, Intel i860 y otros. Finaliza describiendo procesadores de los años 2000 como el Pentium IV, Itanium, PowerPC G5 y más.
How to cross compile ROS2 distro by taken VxWorks RTOS as an exampleAndrei Kholodnyi
Even Open Robotics provides pre-built ROS 2 packages for multiple platforms, very often target software and hardware differ from the default one and a cross-compilation becomes a mandatory step:
• A different from Linux operating system e.g. VxWorks, QNX, eSol, etc. is deployed on the target hardware
• Target hardware (e.g. ARM aarch64) is different from the development host (e.g. Intel x86_64).
• Tuning target software for the footprint and performance (e.g. setting -mcpu=cortex-a72 -mfpu=neon-fp-armv8 when building for Raspberry Pi4).
• Separating ROS2 host tools (e.g. RViz) from the ROS2 target binaries.
This session will explain in detail of how to cross-compile ROS2 distro by taken VxWorks RTOS as an example. Step by step instructions will be given of how to setup a cross-compile development environment, build and deploy ROS2 binaries on the target. As a target QEMU ARM will be used on the Desktop PC.
Este documento presenta una guía de aprendizaje sobre la limpieza de computadores. Incluye actividades de aprendizaje como responder preguntas sobre mantenimiento de PC, realizar informes sobre el estado inicial de un PC y sobre los procedimientos de limpieza, y limpiar ratones y teclados. El objetivo es que los aprendices adquieran habilidades para realizar mantenimiento preventivo de equipos de cómputo de manera segura y siguiendo las normas técnicas.
Este documento describe la arquitectura de un computador personal. En primer lugar, define lo que es una computadora y su arquitectura. Luego, explica las dos principales arquitecturas de computadoras, la de Von Neumann y la de Harvard. Por último, detalla los componentes básicos de hardware de un computador personal, incluyendo la placa base, la CPU, la memoria RAM y los dispositivos de almacenamiento y entrada/salida.
Este documento presenta un tutorial sobre el uso de la aplicación Scratch para crear animaciones, historias interactivas, juegos y música. Explica las nociones básicas de Scratch como agregar objetos, escenarios y programar el movimiento, efectos, sonido y más. Además, incluye consideraciones pedagógicas y ejemplos paso a paso para crear proyectos educativos con Scratch.
Init of Android
The /init process in Android is different than a typical Linux system. It has two main parts - a boot part and a daemon part. The boot part sets up directories and parses the /init.rc file. The daemon part runs in a forever loop handling events from four file descriptors for devices, properties, signals, and keychords. It is responsible for device management, property updates, restarting services, and special key combinations. The /init process is statically linked so it can run independently of the system.
Este documento describe los diferentes puertos y conectores que se encuentran en una computadora personal. Explica que los puertos sirven para que los datos entren o salgan de la PC y conectan dispositivos mediante cables. Luego describe los puertos paralelo, serie, USB, DIN, RJ-45, VGA y DVI; así como los conectores de corriente, VGA, serial, paralelo, USB, RJ-45, audio y PS/2. Finalmente señala que algunos conectores son antiguos y existen mejores opciones como USB
Este documento resume los principales módulos de PyGame relacionados con eventos, mouse y dibujo. Explica cómo manejar eventos a través de la cola de eventos de PyGame y los diferentes métodos disponibles. También describe las funciones del módulo de mouse para obtener y modificar el estado del mouse. Finalmente, presenta un ejemplo de cómo cambiar el cursor del mouse al hacer clic.
Este documento introduce Pygame, una librería multimedia de Python que permite crear juegos y aplicaciones interactivas. Explica que Pygame permite cargar y manipular imágenes, sonidos, eventos de entrada y más. También cubre cómo instalar Pygame, importar módulos, procesar eventos de teclado, usar sprites y temporizadores para controlar la velocidad de juegos.
El documento proporciona información sobre la memoria RAM (Random Access Memory) en computadoras. Explica que hay dos tipos básicos de RAM: dinámica (DRAM) y estática (SRAM). Luego detalla las características y evolución de los módulos de memoria como SIMM, DIMM, DDR, DDR2 y DDR3. Finalmente, incluye preguntas sobre conceptos relacionados a la memoria RAM como su función, unidades de medida, capacidades disponibles y costo.
El documento presenta una infografía sobre las partes principales de una placa base. Explica brevemente cada componente clave como el procesador, memoria RAM, puertos SATA, ranuras PCI, chipset norte y sur, y cómo estos elementos se conectan y permiten el funcionamiento del ordenador.
El documento describe la plataforma Arduino, incluyendo diferentes modelos como Arduino Uno, Mega y Lilypad. Explica características como el microcontrolador, voltaje, pines de E/S, memoria y velocidad de reloj para cada modelo. También cubre conceptos como programación en Arduino, uso de librerías, y cómo expandir funcionalidad mediante shields.
The document discusses the benefits of meditation for reducing stress and anxiety. Regular meditation practice can help calm the mind and body by lowering heart rate and blood pressure. Studies have shown that meditating for just 10-20 minutes per day can have significant positive impacts on both mental and physical health over time.
Exposición sobre la placa madre de la computadoraIng-Ervens
aquí está una exposición sobre la placa base del ordenador realizada por tres estudiantes de Ingenieria de sistemas de Informacion de la Universidad APEC...
Este documento resume tres tipos de tarjetas de expansión para computadoras: tarjetas de video, tarjetas de sonido y tarjetas de red. Las tarjetas de video procesan y mejoran la capacidad gráfica, las tarjetas de sonido permiten la entrada y salida de audio, y las tarjetas de red conectan la computadora a una red y controlan el flujo de datos.
Este documento compara los microprocesadores Intel y AMD. Resalta que aunque Intel ha estado en el mercado por más de 3 décadas, AMD sacó los primeros procesadores de 64 bits y lidera en tecnología. Para velocidad e incluso edición de videos, AMD es mejor, mientras que Intel es más estable. En general, ninguna marca es claramente superior para todas las tareas.
El documento proporciona información sobre tarjetas de video y tarjetas de sonido. Explica que las tarjetas de video convierten las señales del procesador en señales de video para la pantalla, mientras que las tarjetas de sonido permiten la entrada y salida de audio. Luego describe características clave como la resolución y velocidad de las tarjetas de video, y los componentes y funciones de las tarjetas de sonido como el procesador de señales digitales y los convertidores digital-analógico.
The document discusses various computer interfaces and bus architectures. It describes interfaces such as USB, FireWire, SCSI, IDE, SATA, serial/parallel, analog/digital. It also covers different types of computer buses like ISA, EISA, PCI, AGP, and system buses. Peripheral devices connect to computers via these various interfaces and buses.
Este documento describe la estructura modular de las computadoras. Explica que tienen una estructura externa compacta o modular y una estructura interna que incluye memoria, CPU, unidades de entrada/salida e interfaces. Además, cubre equipos de programación y dispositivos periféricos.
Componentes externos e internos de una portatil cyntislore
Este documento describe los componentes externos e internos de una computadora portátil. Explica los componentes externos como la batería, puertos USB y de video. También detalla los componentes internos clave como la CPU, memoria RAM, unidad de disco duro y tarjeta de video. El documento concluye que los avances tecnológicos han hecho que las computadoras portátiles sean una herramienta útil para el trabajo y la vida cotidiana.
Este documento resume la evolución de los procesadores CISC desde 1971 hasta 2003. Comienza con el Intel 4004 de 4 bits en 1971 y continúa describiendo procesadores posteriores como el Intel 4040, MOS 6502, WDC 65C02, AVR, Intel 8085 e Intel 8088. Luego cubre procesadores de los años 80 y 90 como el Motorola 6809, Intel 80188, ARM2, SPARC, Intel i860 y otros. Finaliza describiendo procesadores de los años 2000 como el Pentium IV, Itanium, PowerPC G5 y más.
How to cross compile ROS2 distro by taken VxWorks RTOS as an exampleAndrei Kholodnyi
Even Open Robotics provides pre-built ROS 2 packages for multiple platforms, very often target software and hardware differ from the default one and a cross-compilation becomes a mandatory step:
• A different from Linux operating system e.g. VxWorks, QNX, eSol, etc. is deployed on the target hardware
• Target hardware (e.g. ARM aarch64) is different from the development host (e.g. Intel x86_64).
• Tuning target software for the footprint and performance (e.g. setting -mcpu=cortex-a72 -mfpu=neon-fp-armv8 when building for Raspberry Pi4).
• Separating ROS2 host tools (e.g. RViz) from the ROS2 target binaries.
This session will explain in detail of how to cross-compile ROS2 distro by taken VxWorks RTOS as an example. Step by step instructions will be given of how to setup a cross-compile development environment, build and deploy ROS2 binaries on the target. As a target QEMU ARM will be used on the Desktop PC.
Este documento presenta una guía de aprendizaje sobre la limpieza de computadores. Incluye actividades de aprendizaje como responder preguntas sobre mantenimiento de PC, realizar informes sobre el estado inicial de un PC y sobre los procedimientos de limpieza, y limpiar ratones y teclados. El objetivo es que los aprendices adquieran habilidades para realizar mantenimiento preventivo de equipos de cómputo de manera segura y siguiendo las normas técnicas.
Este documento describe la arquitectura de un computador personal. En primer lugar, define lo que es una computadora y su arquitectura. Luego, explica las dos principales arquitecturas de computadoras, la de Von Neumann y la de Harvard. Por último, detalla los componentes básicos de hardware de un computador personal, incluyendo la placa base, la CPU, la memoria RAM y los dispositivos de almacenamiento y entrada/salida.
Este documento presenta un tutorial sobre el uso de la aplicación Scratch para crear animaciones, historias interactivas, juegos y música. Explica las nociones básicas de Scratch como agregar objetos, escenarios y programar el movimiento, efectos, sonido y más. Además, incluye consideraciones pedagógicas y ejemplos paso a paso para crear proyectos educativos con Scratch.
Init of Android
The /init process in Android is different than a typical Linux system. It has two main parts - a boot part and a daemon part. The boot part sets up directories and parses the /init.rc file. The daemon part runs in a forever loop handling events from four file descriptors for devices, properties, signals, and keychords. It is responsible for device management, property updates, restarting services, and special key combinations. The /init process is statically linked so it can run independently of the system.
Este documento describe los diferentes puertos y conectores que se encuentran en una computadora personal. Explica que los puertos sirven para que los datos entren o salgan de la PC y conectan dispositivos mediante cables. Luego describe los puertos paralelo, serie, USB, DIN, RJ-45, VGA y DVI; así como los conectores de corriente, VGA, serial, paralelo, USB, RJ-45, audio y PS/2. Finalmente señala que algunos conectores son antiguos y existen mejores opciones como USB
Este documento resume los principales módulos de PyGame relacionados con eventos, mouse y dibujo. Explica cómo manejar eventos a través de la cola de eventos de PyGame y los diferentes métodos disponibles. También describe las funciones del módulo de mouse para obtener y modificar el estado del mouse. Finalmente, presenta un ejemplo de cómo cambiar el cursor del mouse al hacer clic.
Este documento introduce Pygame, una librería multimedia de Python que permite crear juegos y aplicaciones interactivas. Explica que Pygame permite cargar y manipular imágenes, sonidos, eventos de entrada y más. También cubre cómo instalar Pygame, importar módulos, procesar eventos de teclado, usar sprites y temporizadores para controlar la velocidad de juegos.
Este documento presenta los requisitos y objetivos de un curso sobre el desarrollo de videojuegos con Python. Los requisitos mínimos incluyen experiencia en programación, y se recomienda Python 2.6. Se describen objetivos como aprender conceptos de juegos, usar PyGame y desarrollar un juego basado en programación orientada a objetos. También se discuten temas como crear un espacio de trabajo organizado, establecer estándares y convenciones de codificación para el proyecto.
Este documento introduce el curso de Programación de Juegos con PyGame. Explica que el curso se enfocará en el desarrollo de juegos 2D en lugar de 3D debido a que es más sencillo aprender primero en 2D. También enumera las herramientas necesarias para crear juegos 2D, incluyendo un lenguaje de programación como Python, un editor de texto, una API gráfica como PyGame y conceptos básicos de programación 2D como superficies y blit.
El documento describe el módulo Pygame para la gestión de teclado, imágenes y superficies. Explica cómo usar las funciones del módulo Pygame key para controlar eventos de teclado, obtener el estado de las teclas y configurar la repetición. También cubre el módulo Pygame image para cargar y guardar imágenes y la clase Surface para manipular imágenes.
Este documento describe el módulo pygame.time y la clase Clock, los cuales permiten controlar el tiempo y la velocidad en los juegos de PyGame. Explica funciones como tick(), delay(), set_timer() y get_ticks(). También cubre el módulo pygame.font para renderizar y mostrar texto en los juegos.
La sesión cubre la introducción a la BeagleBone Black, incluyendo sus características y herramientas necesarias. Explica cómo instalarla en una PC y conectarse a ella, así como también introduce conceptos como Javascript, Node.js y Cloud9 para programar y controlar la BeagleBone Black de forma remota a través de una interfaz web. Finalmente, se realiza una práctica para encender LEDs conectados a la tarjeta.
Este documento presenta una introducción a la programación con Python. Explica qué son los programas de computadora y por qué es importante aprender a crearlos. Luego describe cómo instalar Python e IDLE para comenzar a programar. Finalmente, introduce los conceptos básicos de programación como variables, bucles y funciones.
El documento presenta la plataforma Arduino, incluyendo la instalación del entorno de programación IDEArduino en Linux y Windows, programación básica, y descripción de los componentes de la placa Arduino UNO r3. Explica que Arduino es una plataforma de desarrollo de hardware y software abierta, y cómo instalar e interactuar con el IDE y la placa. También introduce conceptos como pines de entrada y salida, y funciones básicas como digitalWrite() y delay().
El documento describe la plataforma Arduino, incluyendo la instalación del entorno de programación IDEArduino en Linux y Windows, programación básica, y descripción de los componentes de la placa Arduino UNO r3. Se explica que Arduino es una plataforma de desarrollo de hardware y software abierta, y cómo instalar e interactuar con el IDEArduino y una placa Arduino para proyectos de electrónica y programación.
Este documento presenta la plataforma Arduino, incluyendo su historia, propósito y componentes clave. Explica cómo instalar el entorno de programación IDEArduino en Linux y Windows, y proporciona un ejemplo básico de código para hacer parpadear un LED como introducción a la programación con Arduino.
Este documento presenta la plataforma Arduino, incluyendo su historia, propósito y componentes clave. Explica cómo instalar el entorno de programación IDEArduino en Linux y Windows, y proporciona un ejemplo básico de código para hacer parpadear un LED como introducción a la programación con Arduino.
Esta presentación tiene como objetivo conocer los aspectos básicos de PyQt4 y como realizar aplicaciones en Python con interfaces de usuario usando esta biblioteca.
Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2SANTIAGO PABLO ALBERTO
Este documento proporciona instrucciones paso a paso para crear un proyecto en Proteus que hace parpadear un LED conectado a un Raspberry Pi usando flujogramas. Explica cómo crear un nuevo proyecto, agregar periféricos como un LED y un botón, y construir el flujograma para encender y apagar el LED cuando se presiona el botón. También cubre cómo verificar que el hardware funciona correctamente en un Raspberry Pi físico.
Este documento presenta una introducción al lenguaje de programación Python. Explica brevemente las características principales de Python, como que es un lenguaje orientado a objetos, libre, portable, potente y claro. También incluye una comparación rápida de un programa "Hola Mundo" en diferentes lenguajes como C, Java y Python para mostrar la simplicidad de este último. El documento viene acompañado de un DVD con Debian para ejecutar los ejemplos de Python presentados.
Este documento introduce Unity y sus características principales. Explica cómo instalar Unity y crear un proyecto básico 3D llamado Intro. Describe la interfaz de Unity y comandos útiles como mover objetos y la cámara. También cubre componentes comunes, herencia de objetos, prefabs y la Asset Store.
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
Conferencia relizada en ADWE Alicante por Daniel Nebot (@daniinebot) en el espacio CAMON sobre diferentes Frameworks para el desarrollo de juegos para dispositivo móviles
XNA es una plataforma gratuita para desarrollar videojuegos en C# y Visual Studio. Ofrece herramientas para crear juegos para PC, Xbox 360 y Zune. Incluye funciones para gráficos, audio, entrada y colisiones. Los componentes permiten agregar funcionalidad extra al juego sin volver a escribir código. Los juegos de XNA también se pueden publicar en Xbox Live Community Games para ganar dinero.
Este documento presenta el resumen de dos lecciones sobre cómo crackear la protección de tiempo de la aplicación de diseño de cocinas KitchenDraw 4.0. En la primera lección, se explica cómo detener el contador de tiempo mediante la modificación de valores en el registro y archivos. En la segunda lección, se detalla cómo habilitar la función de imágenes fotorealistas alterando el código mediante el uso de herramientas de depuración.
Práctica en la que se enseñan las diferentes partes del IDE de Arduino y para qué sirven, y se inicia al lector en el lenguaje de programación de Arduino, cargando un primer programa básico que hace parpadear un led en la placa
Windows 7 incluirá nuevas aplicaciones como Windows Media Player 12 pero algunas aplicaciones como Windows Movie Maker, Windows Mail y Windows Photo Gallery ya no vendrán preinstaladas pero seguirán disponibles para descargar gratuitamente.
Windows 7 incluirá nuevas aplicaciones como Windows Media Player 12 pero algunas aplicaciones como Windows Movie Maker, Windows Mail y Windows Photo Gallery ya no vendrán preinstaladas pero seguirán disponibles para descargar gratuitamente.
1. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Programación de Juegos
con PyGame
Capitulo 2: ¿Que es
PyGame?
2. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
¿Que es PyGame?
PyGame es un wrapper de SDL (Simple Direct Media Layer), escrito por Pete
Shinners. Lo que significa que usted usando PyGame podrá escribir Juegos u otras
aplicaciones multimedias en Python que correrá sin alterar su código en cualquier plataforma
que soporte SDL (Windows, Unix, BSD, Mac, el beOS y otros).
PyGame puede ser fácil de aprender, pero el mundo de la programación gráfica nos
puede deparar gratas sorpresas.
Historia
Este artículo es una introducción a la biblioteca PyGame para programadores Python.
La versión original apareció en PyZine, volumen 1 tercera edición. Esta versión contiene
revisiones menores, para crear un mejor artículo. PyGame es una biblioteca de extensión de
Python que encapsula la funcionalidad de la biblioteca SDL y sus ayudantes.
PyGame comenzó en el verano del 2000. Siendo un programador C por muchos años,
descubrí Python y SDL casi al mismo tiempo. Usted ya está familiarizado con Python, que
estaba en su versión 1.5.2, por lo tanto podría necesitar una introducción a SDL, que
significa Simple DirectMedia Layer. Creada por Sam Lantinga, es una biblioteca
multiplataforma para controlar multimedia, comparable a DirectX. A sido usada para cientos
de juegos comerciales y de código abierto.
Estaba impresionado por lo nítidos y directos que eran ambos proyectos y no pasó
mucho tiempo antes que me diera cuenta que mezclar Python y SDL era una propuesta
interesante.
Descubrí un pequeño proyecto ya en curso con exactamente la misma idea, PySDL.
Creada por Mark Baker, PySDL era una implementación directa de SDL como una extensión
de Python. La interfase era mas limpia que una envoltura genérica SWIG, pero forzaba un
"estilo C" al código. La muerte repentina de PySDL se incito a empezar un nuevo proyecto
por mi cuenta.
Quería generar un proyecto que realmente tomara ventaja de Python. Mi meta era
hacer muy simple realizar las cosas sencillas, y directo para hacer las cosas difíciles. PyGame
empezó en Octubre del 2000. Seis meses mas tarde la versión 1.0 de PyGame fue lanzado.
Algunas Conclusiones
Desarrollar juegos es muy gratificante, existe algo muy excitante en ser capaz de ver
e interactuar con el código que uno escribió. PyGame está actualmente siendo usado por
mas de 1000 proyectos. Varios de ellos están listos para jugar ahora. Puede que le sorprenda
visitar el sitio web de PyGame, y ver lo que otros usuarios han podido hacer con Python.
Algo que me ha llamado la atención es la cantidad de personas que han accedido a
Python por primera vez para probar el desarrollo de juegos. Veo por que los juegos son
atractivos para los nuevos programadores, pero puede ser difícil porque crear juegos
3. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
requiere un gran conocimiento del lenguaje. He intentado dar mi apoyo a este grupo de
usuarios creando muchos ejemplos y tutoriales de PyGame para personas novatas en estos
conceptos.
Al final de cuentas, mi consejo en mantener las cosas simples. Si está planeando
crear su primer juego, hay mucho para aprender. Hasta un juego muy simple desafiará sus
diseños, y los juegos complejos no necesariamente son juegos divertidos. Cuando entienda
Python, puede usar PyGame para crear un juego simple en solo una o dos semanas. Desde
ahí, necesitará una sorpresiva cantidad de tiempo para agregar el terminado que lo
convertirá en un juego presentable completo.
Pete Shinners (Creador de PyGame)
Instalando PyGame
Bueno se supone que usted conoce y manejan Python, por lo que también deveria
suponer que tiene instalado Python en su Sistema Operativo (avisarme si me equivoco). Por
lo que solo explicare como instalar PyGame en Windows como GNU/Linux.
Instalación en Windows
Lo Primero que debeemos Hacer es acceder a la Pagina de PyGame
(http://www.pygame.org) y en la secion de descargas (la pagina esta en ingles por lo que
deben buscar el link de Donwload) bajarnos la ultima version de pygame que sea compatible
con nuestra version de Python, por ejemplo yo tengo instalado em mi PC Win XP (WinVista
me parece una basura, y Estoy por probar Windows 7, no importa la instalacion es la
misma), Python 2.6.4 asi que me baje el siguiente archivo:
pygame-1.9.1.win32-py2.6.msi
1 - Hacemos clic en el instalador, nos aparecerá una ventana preguntadonos que tipo de
instalación queremos realizar, que pygame se accesible para todos los usuarios o solo para el
usuario actual.
4. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
2- Tenemos que decirle en que versión, de Python queremos instalar indicando la carpeta, yo
por defecto lo tengo instalado en C:Python26
5. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
3- Pulsamos siguiente y comenzara la instalación luego pulsamos Salir o Finish para salir del
instalador.
Instalación en GNU/Linux Debían o Ubuntu
La verdad es que en GNU/Linux estoy acostumbrado a instalar paquetes directamente
desde consola y por suerte si nos falta algunas dependencias el gestor de paquetes Sinaptic
las buscara por nosotros.
En fin para instalar se requiere entrar como Administrador o root o opcional mente si
queremos instalar para un usuario en particular como sudo, en fin solo tenemos que abrir la
consola o terminal y ejecutar la siguientes lineas:
cmd> sudo apt-get install python-pygame
y nos pedirá la contraseña de superusario, nos mostrara los paquetes que tienen que ser
instalados, nos pedirá confirmación y luego después de eso comenzara la instalación
Nota: no me acostumbro a uso de aptitud en ves de apt-get cuestiones de gusto
solamente.
6. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Probando la instalación
Para probar que todo ha ido bien y que hemos instalado correctamente Python
abrimos la consola de Python y ejecutamos la siguiente linea:
>>> import pygame
Si no nos da error es por que la instalación fue todo un éxito.
Un Ejemplo Sencillo
Como la mayoría de ustedes creo que ya deben estar algo aburridos de tantos
conceptos (al menos yo lo estoy) vamos a comenzar directamente con un ejemplo practico
ya que considero que la mejor forma de empesar a manejar una librería es mediante un
ejemplo sencillo, bien aunque aun no he explicado nada dicho ejemplo que por si no lo dije
sera una pelota rebotando de un lado al otro servirá para mostrar lo fácil que es programar
en pygame, bueno vamos al código en si:
0001 #!/usr/bin/env Python
0002 # -*- coding: utf-8 -*-
0003
0004 import pygame
0005
0006 #Datos de Pantalla
0007 ANCHO = 400
0008 ALTO = 400
0009 RESOLUCION = (ANCHO, ALTO)
0010
0011 def main():
0012 pygame.init()
0013 screen = pygame.display.set_mode(RESOLUCION)
0014
0015 pelota = pygame.image.load('pelota.png')
0016 rect = pelota.get_rect()
0017 desp = [2,2] #incrementos para desplazar la pelota en pantalla
0018
0019 loop = True
0020 while loop:
0021 screen.fill((0,0,0)) #pinta toda la pantalla de negro
0022
0023 #mover el rectangulo que maneja la posicion de la pelota
0024 rect.x += desp[0]
0025 rect.y += desp[1]
0026 #controla que la pelota no se salga de pantalla
0027 if rect.top < 0:
0028 desp[1] = -desp[1]
7. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
0029 if rect.right > ANCHO:
0030 desp[0] = -desp[0]
0031 if rect.bottom > ALTO:
0032 desp[1] = -desp[1]
0033 if rect.left < 0:
0034 desp[0] = -desp[0]
0035
0036 screen.blit(pelota, rect)
0037
0038 pygame.display.flip()
0039
0040 for evento in pygame.event.get():
0041 if evento.type == pygame.QUIT:
0042 loop =False
0043 return
0044
0045 if __name__ == '__main__':
0046 main()
(Captura de pantalla del ejemplo pelota.py)
8. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Bueno pasemos a explicar el código:
Vemos que la codificacion del texto e importar pygame no es algo para prestar mucha
atencion.
7,8,9- Acá especificamos variables que contendrán las dimensiones de pantalla
12- pygame.init() inicializa la mayoría de los módulos de pygame
13- Creamos una ventana gráfica con la llamada a "pygame.display.set_mode()". PyGame y
SDL hacen esto simple predeterminando los mejores modos gráficos para el hardware del
equipo. Puedes anular el modo y SDL compensará todo lo que el hardware no puede hacer.
PyGame representa a las imágenes como objetos Surface. La función
"display.set_mode()" crea un nuevo objeto Surface que referencia a la representación actual
de pantalla. Cualquier dibujo que se haga sobre este objeto Surface se hace visible en el
monitor.
15,16-cargamos nuestra imagen de la pelota. PyGame soporta una gran variedad de
formatos de imágenes a través de la biblioteca SDL_image, incluyendo JPG, PNG, TGA, y GIF.
La función "pygame.image.load()" nos devuelve un objeto Surface con los datos de la pelota.
La Surface mantendrá cualquier color o transparencia Alpha del archivo. Después de cargar
la imagen de la pelota creamos una variable llamada rect.
PyGame incluye un tipo de objeto de utilidad conveniente llamado Rect, que representa un
área rectangular. Mas tarde, en la parte de animación del código, veremos que se puede
hacer con Rect.
19,20 – Creamos un ciclo infinito que se detendrá cuando se lance el evento quit de pygame
21 – Pintamos toda la superficie que representa la pantalla de color negro
En este punto, la linea 23, nuestro programa está inicial izado y listo para ejecutarse. Dentro
de un ciclo infinito verificamos las entradas de datos del usuario, movemos la pelota, y
después dibujamos la pelota.
24 a 34- Es tiempo de actualizar la posición de la pelota. Las lineas mueven la variable
ballrect a la velocidad actual. Si la pelota se ha movido afuera de la pantalla, revertimos la
velocidad en esa dirección. No es exactamente física Newtoniana, pero es todo lo que
necesitamos.
36- dibujamos la imagen de la pelota en la pantalla. El dibujo de imágenes es manejado por
el método "Surface.blit()". Un blit básicamente significa copiar píxeles de color de una
imagen a otra. Le pasamos al método blit un Surface fuente para que copie de él, y una
posición para poner la fuente sobre el destino.
38 - La ultima cosa que necesitamos hacer es actualizar la pantalla. PyGame maneja la
pantalla con Double Buffer. Cuando terminamos de dibujar llamamos al método
"pygame.display.flip()". Esto hace que todo lo que dibujamos en la pantalla se haga visible.
Este almacenamiento intermedio se asegura que solo veamos pantallas completamente
dibujadas en la pantalla. De otra forma, el usuario vería partes a la mitad de la pantalla
mientras estas son creadas.
40 a 43- Si está familiarizado con la programación GUI, tiene experiencia con eventos y
ciclos de eventos. En PyGame no hay diferencia, verificamos si un evento QUIT ha llegado. Si
es así, simplemente cerramos el programa, PyGame se asegura que todo se cierra
limpiamente.
9. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Así concluye este corto (y por el momento algo confuso :P) ejemplo de PyGame Como
veremos mas adelante PyGame también contiene módulos para hacer cosas como manejo de
entradas para el teclado, mouse y joystick. Puede mezclar audio y reproducir música. Con los
objetos Surface puede dibujar formas simples, rotar y escalar una imagen. Incluso puede
manipular los píxeles de una imagen en tiempo real como un arreglo Numeric (remplazado
por Numpy) de Python. Hay soporte para reproducir video MPEG y CDs de audio. PyGame
también tiene la habilidad de funcionar como una capa de visualización multiplataforma para
PyOpenGL.
Python y Los Juegos
¿Es Python conveniente para juegos? La respuesta es, "Depende del juego". Python es
realmente bastante capaz de correr juegos. Probablemente hasta lo sorprenda cuanto se
puede hacer en menos de 30 milisegundos. Aún así, no es difícil llegar al techo una vez que
su juego se haga mas complejo. Cualquier juego ejecutándose en tiempo real hará uso
completo de la computadora.
Durante los últimos años ha existido una tendencia interesante en el desarrollo de
juegos, que se acerca a lenguajes de mas alto nivel. Usualmente un juegos se divide en 2
grandes partes. El motor del juego, el cual tiene que ser lo mas rápido posible, y la lógica del
juego, que le indica al motor que debe realizar. No hace mucho tiempo que el motor de un
juego se escribía en Assembler, con porciones escritas en lenguaje C. Hoy en día, C se ha
trasladado al motor del juego, mientras que el juego mismo es escrito en un lenguaje de
Scripts de mas alto nivel. Juegos como Quake 3 y Unreal ejecutan estos Scripts como código
binario portable.
PyGame y SDL sirven como excelentes motores C para juegos 2D. Los juegos
igualmente pasarán la mayor parte del tiempo de ejecución dentro de SDL manejando sus
gráficos. SDL puede tomar ventaja de la aceleración de hardware de gráficos. Habilitando
esto, se puede elevar el rendimiento de un juego que corre aproximadamente a 40 cuadros
por segundo hasta 200 cuadros por segundos. Cuando se ve a un juego de Python
ejecutando a 200 cuadros por segundos, se puede ver que Python y los juegos pueden
funcionar juntos.
Aún así, hay limitaciones muy claras. La mejor manera de manejar gráficos de
aceleradoras de video no es siempre la forma de obtener resultados rápidos del Software que
procesa gráficos. El soporte de hardware no está disponible en todas las plataformas.
Cuando un juego se hace mas complejo, usualmente se tiene que comprometer con uno u
otro. SDL tiene otras limitaciones de diseño, cosas como los desplazamientos de pantalla
completa pueden llevar rápidamente a su juego a velocidades injugables.
Mientras SDL no es conveniente para todo tipo de juegos, recuerde que compañías
como Loki usaron SDL para ejecutar una gran variedad de títulos de calidad de ventas por
menor.
PyGame es de bajo nivel cuando se trata de escribir juegos. Se encontrará
rápidamente en la necesidad de envolver funciones comunes en su propio ambiente de
juego. La gran ventaja de esto es que no hay nada en PyGame que le impida seguir su
camino. Su programa está en total control de todo. El efecto colateral de esto es que se
encontrará pidiendo prestado mucho código para realizar un marco de trabajo mas
avanzado. Necesitará un mejor entendimiento de lo que está haciendo.
10. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Importando e Inicializando PyGame
Lograr importar pygame e inicializarlo es un proceso muy simple. Además es lo
suficiente flexible para darle el control sobre lo que está ocurriendo. PyGame es una
colección de diferentes módulos en un único paquete de Python. Algunos de los módulos
están escritos en C, y otros están escritos en Python. Algunos módulos son opcionales, y
podrían no estar presentes siempre.
Importar
Primero debemos importar el paquete pygame. Desde la versión 1.4 de pygame esta
ha sido actualizada para ser mucho mas fácil. La mayoría de los juegos importan todo
pygame de la siguiente forma, usted también deveria hacerlo a menos de que este seguro de
importar los paquetes y módulos que realmente necesita, yo lo hago y recomiendo siempre
incluir las siguientes 2 lineas de importación:
import pygame
from pygame.locals import *
La primera linea es la única realmente necesaria. Se encarga de importar todos los
módulos de disponibles dentro del paquete pygame. La segunda linea es opcional, y coloca
un grupo limitado de constantes y funciones dentro del espacio de nombres global de su
script.
Importar las constantes de pygame facilita la escritura de muchas rutinas. Por
ejemplo, luego de llamar a "from pygame.locals import *" tendrá acceso a constantes como
"K_LEFT" directamente. De otra forma, si evita dicha linea, deberá referirse a las constantes
especificando exactamente donde se encuentran. En este caso podría acceder a la constante
mediante "pygame.K_LEFT" o "pygame.constants.K_LEFT"
Una cosa importante para tener es mente es que muchos de los módulos de pygame
son opcionales. Por ejemplo, uno de esos es el módulo 'font' (ya que depende de la librería
sdl_ttf). Cuando usted escribe "import pygame", pygame verificará si el módulo 'font' está
disponible. Si el módulo 'font' está disponible será importado como "pygame.font". Si el
módulo no está disponible. "pygame.font" se definirá con el valor None (ninguno).
Esto hace que sea bastante fácil probar si el módulo "font" está disponible.
Inicializar
Antes de que pueda Hacer algo con PyGame necesita inicializar los módulos La forma
mas comun de hacerlo es la siguiente:
pygame.init()
11. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Esta rutina intentará inicializar todos los módulos de pygame por usted. No todos los
módulos de pygame necesitan ser inicializados, pero de esta manera automáticamente se
inicializarán aquellos que lo requieran.
Ademas devuelve una tupla con dos valores (numpass, numfail) numpass es la
cantidad de módulos que pudieron ser inicializados exitosamente y numfail la cantidad de
módulos que no pudieron ser inicializados
Si queremos inicializar un modulo a mano, Por ejemplo para inicializar solamente el
módulo 'font' solo debería llamar a:
pygame.font.init()
la Funcion devolvera True en caso de que el modulo haya podido ser inicial izado con
éxito o False en caso contrario.
Pero existe otra forma de saber si un modulo en concreto fue inicial izado, de vuelta
volvamos al caso del modulo font, ahora queremos saber si el modulo fue inicial izado o no
para ello llamamos a la siguiente funcion:
pygame.font.get_init() return Bool
la Funcion devolvera True en caso de que el modulo este inicial izado o False en caso
de que el modulo no este inicial izado
Listado de Módulos de PyGame 1.9.1
A la fecha PyGame cuenta con un montón de módulos que sirven para manejar desde
la Lectora de CD, Teclado, Mouse, Pantalla, etc. aquí un pequeño listado de ellos y para que
sirven mas adelante explicare algunos de ellos:
Camera: Modulo para usar la camara (Experimental)
Cdrom: Modulo que administra los dispositivos CDROM y la reproducción de CDs de audio.
Color: Modulo para representar objectos de tipo color
Cursors: carga imágenes de cursor, incluyendo los cursores por defecto.
Display: Modulo que controla la ventana principal o pantalla.
Draw: dibuja figuras simples sobre objetos Surface.
Event: administra eventos y la cola de eventos.
Examples: Modulo que contiene algunos programas de ejemplo
Font: Modulo que genera e imprime fuentes tipográficas Truetype.
Gfxdraw: Similar al modulo Draw solo que ademas acepta colores en formato RGBA
12. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
(Experimental)
Image: lee y graba imágenes.
Joystick: administra dispositivos de joystick.
Key: administra el teclado.
Locals: Modulo que contiene todas las constantes de pygame
Mask: Modulo para control de coliciones perfecta pixel a pixel.
Midi: lee y grabar archivos en formata MIDI.
Mixer: Modulo para cargar y reproducir sonidos
Mouse: permite controlar el mouse
Movie: reproduce películas en formato MPEG.
Music: Modulo para el control de streaming de Audio
Overlay: Modulo para vrindar acceso al hardware de Video
Pixelarray: Objecto para el acceso directo a los pixels de una superficie
Rect: Objecto para almacenar cordenadas rectangulares
Scrap: Modulo para soporte del porta papeles (Experimental)
Sndarray: manipula sonidos con Numeric.
Sprite: Modulo para el manejo del objecto basico de un Juego
Surface: Objecto para representar imagenes
Surfarray: manipula imagenes con Numeric.
Tests: Modulo para realizar pruebas
Time: controlador de tiempo.
Transform: puede escalar, rotar e invertir imágenes.
Modulos Realmente utiles
Como se vio arriba pygame contiene un monton de modulos, pero la verdad es raro
que los lleguemos a utilizar todos, por lo que en este curso solo se explicaran aquellos que
creo que son indispensables, el resto se los dejo a ustedes para que investiguen si los
necesitan en algun momento yo por el momento en este curso voy a explicar los siguientes
modulos:
Color
Display
Draw
Event
13. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Font
Image
Joystick
Key
Mixer
Mouse
Rect
Sprite
Time
Lo que sigue es explicar cada uno de los módulos u Clases aquí listadas. Solo haré
breves reseñas sobre cada módulos y algunas de sus funciones ya que la idea de este curso
es introducirlos mas a la programación de Juegos y no solo enseñar a usar una API Gráfica
como PyGame, para un entendimiento mas completo de dicha API se recomienda leer la
documentación Oficial de PyGame.
Color
Bueno en realidad no se si es util o no explicar este Objecto ya que la mayor parte
pasaremos una tupla en ves de un Objecto Color para definir el color de algo para mayor
informacion recomiendo leer la documentacion de PyGame. Pero bueno nos servira si es que
queremos armar algun efecto ya que maneja por defecto el formato RGBA (rojo, verde, azul,
alfa) pero nos ahorrara tiempo es caso de que querramos convertir a otro formato:
Un objecto Color se puede crear de algunas de las siguientes formas:
pygame.Color(name): return color
pygame.Color(r, g, b, a): return color
pygame.Color(rgbvalue): return color
Nota: r,g,b,a Aceptan cada uno valores que van desde 0 a 255
Se puede modificar directamente cualquiera de los valores (solo para formato RGBA),
por ejemplo suponer que quiero que el color del objecto sea Magenta:
mi_color = PyGame.Color((0,0,0)) #el color que representa es el negro
mi_color.r = 255
mi_color.b = 255
14. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
El canal alfa representa la transparencia del color, 255 equibale a que el objecto no es
transparente. Por lo que no necesitamos modificarlo
Nota: El magenta en RGB es (255, 0, 255) osea 255 de rojo, 0 de verde 255 de azul, para
que no se compliquen probando colores a ciegas los pueden armar uzando el selector de
color de alguna aplicación como Paint en Windows vamo al meno en Color->Modificar
Colores... y nos aparecera el siguiente cuadro y como ven el magenta es 255 de rojo 0 de
verde y 255 de azul:
(Selector de Colores estándar en Windows)
Otra cosa que podemos hacer con el objecto color es convertirlo a otros formatos
como CMY (si alguien no conoce este color les dire que es el formato de color que manejan la
impresoras). Otros son HSVA, HSLA, I1I2I3. Nosotros nos quedaremos con el formato RGBA
o RGB que es el mas comun.
Tuplas que representan colores
Para definir el color de una figura no necesariamente tenemos que utilizar un objecto
Color, bastara solo con pasar una tupla indicando los valores para rgb, luego PyGame se
encargara internamente de convertir esa tupla a Objecto color:
mi_color = (r, g, b)
magenta = (255, 0, 255)
15. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Una buena practica en este momento seria crear un archivo en Python definiendo
como constantes los colores de uso comun. Bueno como no me gusta inventar la rueda 2
veses yo ya lo hice y se los paso el archivo directamente para que lo use el que lo desee.
Display
Como ya vimos este modulo es el que nos permite controlar la visualización de
pygame. Algo que hay que recalcar es que PyGame ofrece una única superficie de
visualización la cual puede estar contenida ya sea en una ventana o la Pantalla completa,
una ves que esta es creada se maneja igual que cualquier objecto Surface solo que los
cambios realizados en ella no se mostraran directamente en pantalla sino que tendrás utilizar
algún método para actualizarla. (esto se hace para evitar el molesto parpadeo).
Por defecto la pantalla es manejada directamente por software aunque se le puede
pasar parámetros y decirle que utilice aceleración de hardware o trabajar con OpenGL
pasando parámetros a la funcion pygame.display.set_mode().
Como se explico anteriormente PyGame solo puede tener una sola pantalla a la ves la
llamada sucesivas a la funcion pygame.display.set_mode() cerrara la pantalla anterior y
creara una nueva.
Como todo modulo este debe ser Inicializando con la funcion pygame.display.init()
aunque es Inicializando cuando se llama a pygame.init().
Creando la Pantalla de Visualizacion
La pantalla de visualizacion se crea utilizando la siguiente funcion:
pygame.display.set_mode(resolucion=(0, 0), flags=0, depth=0) return surface
Donde la tupla resolucion indica las dimenciones de pantalla, ancho y alto, el
argumento flags es una colección de opciones adicionales y el argumento depth representa
el nro de bits utilizados por color.
El argumento flags define que tipo de pantalla se desea utilizar hay varias opciones
para elegir, ademas se pueden conbinar utilizando el operador '|' pipe.
Opcion Descripcion
pygame.FULLSCREEN Modo pantalla completa
pygame.DOUBLEBUFF Recomendado para combinar con HWSURFACE y
OPENGL
16. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
pygame.HWSURFACE Aceleracion de Hardware, solo funciona en pantalla
completa
pygame.OPENGL Genera una pantalla en la que se puede dibujar con
OpenGL
pygame.RESIZABLE Se puede cambiar el tamaño
pygame.NOFRAME La ventana no tendra bordes ni titulo
Actualizar Pantalla
Como dijimos antes la pantalla no se actualiza automáticamente cuando dibujamos en
el objecto que la representa sino que debemos utilizar alguno de los siguientes métodos para
actualizarla:
flip
Actualizara el contenido de la pantalla completa.
pygame.display.flip() return None
update
Sirve para actualizar solamente porciones de la pantalla, es como una versión
optimizada de pygame.display.flip(), se llama pasando una lista con los rectángulos a
actualizar (Como el método de los Rectángulos Sucios), si no se pasa argumentos actua igual
que pygame.display.flip(), se puede llamar de la siguiente forma:
pygame.display.update(rectangle=None) return None
pygame.display.update(rectangle=rect_list) return None
Modos Soportados
Se puede ver las posibles resoluciones soportadas para una profundidad de colores
determinada, si:
pygame.display.list_mode(flags=0, depth=0) return list
Cambiando el Icono y Titulo de la Ventana
17. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
Por defecto el titulo de las ventana es PyGame y el icono es el logo de pygame, pero
puede que queramos cambiarlos para ello pygame nos facilita las siguientes dos funciones:
pygame.display.set_icon(surface) return None
pygame.display.set_caption(title='', icon_title='') return None
pygame.display.get_caption() return title, icon_title
Otras funciones con las que cuenta el Modulo Display y que no mencione son:
pygame.display.get_surface()
pygame.display.get_driver()
pygame.display.Info()
pygame.display.get_wm_info()
pygame.display.mode_ok
pygame.display.gl_get_attribute()
pygame.display.gl_set_attribute()
pygame.display.get_active()
pygame.display.iconify()
pygame.display.toggle_fullscreen()
pygame.display.set_gamma()
pygame.display.set_gamma_ramp()
pygame.display.set_palette()
Para terminar dejo el código de esqueleto (no tienen que copiar nada de aca, dicha
plantilla viene con los ejemplos) de una aplicación en PyGame y que les servirá para resolver
los ejercicios propuestos ya que para ellos se necesitara utilizar algunas funciones y módulos
que todavía no explique:
0001 #!/usr/bin/env python
0002 # -*- coding: utf-8 -*-
0003
0004 """
0005 Plantilla basica para escribir aplicaciones en PyGame
0006 """
0007
0008
0009 import pygame
18. Curso de: Programacion de Juegos con PyGame
Por: Ricardo D. Quiroga – L2Radamanthys → l2radamanthys@gmail.com
0010 from pygame.locals import *
0011
0012
0013 #Datos de Pantalla
0014 ANCHO = 400
0015 ALTO = 400
0016 RESOLUCION = (ANCHO, ALTO)
0017
0018
0019 def main():
0020 #inicializo pygame
0021 pygame.init()
0022
0023 #defino el tamaño de la ventana y la variable que hara referencia
0024 screen = pygame.display.set_mode(RESOLUCION)
0025
0026 #coloque aqui sus variables
0027
0028 loop = True
0029 while loop:
0030 # escriba aca el codigo del juego
0031
0032
0033
0034 #actualizo la pantalla
0035 pygame.display.flip()
0036
0037 for evento in pygame.event.get():
0038 if evento.type == pygame.QUIT:
0039 loop =False
0040 return
0041
0042
0043 if __name__ == '__main__':
0044 main()