Intro PyGame Capitulo 0

3
Requerimientos Mínimos El unico requerimiento para realizar este curso es manejar algún lenguaje de Programación aunque este curso se tomara como lenguaje Python, por cuestiones varias, principalmente evitar problemas con las diferentes versiones las version de python recomendada es la 2.6.x, omito la version 3.0 por encontrarse en desarrollo y no estar adoptada como estandar y la version 2.7 esta en alfa todavia. Requerimientos Opcionales - Conocimientos sobre matemática y física - Saber manejar alguna herramienta de dibujo tales como PhotoShop, Gimp, etc. Objetivos del Curso - Aprender los conceptos necesarios sobre el desarrollo de Juegos - Aprender a manejarse en un Espacio de trabajo - Crear un Video Juego Basándose el la Programación orientada a Objectos - Aprender a Usar la Librería PyGame - Conocer los conceptos basicos sobre Inteligencia Artificial Aplicada a los Videos Juegos Creando Nuestro Espacio de Trabajo Lo primero que debes aprender al empezar un proyecto medianamente grande es ser organizado, y créeme: cuesta mucho aprender a serlo. Yo te puedo dar algunos consejos, no hay problema, pero tú debes continuar y hacer del orden tu forma de vivir por lo menos en la programación porque ante todo te permitirá mantener en un lugar seguro todos los activos de tu proyecto, fáciles de ubicar, fáciles de rehusar, fáciles de arreglar, en general, fáciles de mantener. Estos algunos de los pasos que yo te recomiendo y que también seguiré en mi proyecto de juego, así también estarán ubicados los códigos y encabezados de mi proyecto. Esta organización se puede dar como una especie de árbol comúnmente conocido como directorio. Por ejemplo, El directorio raíz de nuestro proyecto puede estar en cualquier parte de nuestro disco duro o disco de red. Además dentro del directorio códigos puede considerarse una sub- clasificación entre las versiones de nuestro proyecto, por ejemplo la versión 0.1, versión 0.2 ,

Transcript of Intro PyGame Capitulo 0

Page 1: Intro PyGame Capitulo 0

Requerimientos Mínimos

El unico requerimiento para realizar este curso es manejar algún lenguaje de Programación aunque este curso se tomara como lenguaje Python, por cuestiones varias, principalmente evitar problemas con las diferentes versiones las version de python recomendada es la 2.6.x, omito la version 3.0 por encontrarse en desarrollo y no estar adoptada como estandar y la version 2.7 esta en alfa todavia.

Requerimientos Opcionales

- Conocimientos sobre matemática y física- Saber manejar alguna herramienta de dibujo tales como PhotoShop, Gimp, etc.

Objetivos del Curso

- Aprender los conceptos necesarios sobre el desarrollo de Juegos- Aprender a manejarse en un Espacio de trabajo- Crear un Video Juego Basándose el la Programación orientada a Objectos- Aprender a Usar la Librería PyGame- Conocer los conceptos basicos sobre Inteligencia Artificial Aplicada a los Videos Juegos

Creando Nuestro Espacio de TrabajoLo primero que debes aprender al empezar un proyecto medianamente grande

es ser organizado, y créeme: cuesta mucho aprender a serlo. Yo te puedo dar algunosconsejos, no hay problema, pero tú debes continuar y hacer del orden tu forma de vivir por lo menos en la programación porque ante todo te permitirá mantener en un lugar seguro todos los activos de tu proyecto, fáciles de ubicar, fáciles de rehusar, fáciles de arreglar, en general, fáciles de mantener.

Estos algunos de los pasos que yo te recomiendo y que también seguiré en miproyecto de juego, así también estarán ubicados los códigos y encabezados de miproyecto. Esta organización se puede dar como una especie de árbol comúnmenteconocido como directorio. Por ejemplo,

El directorio raíz de nuestro proyecto puede estar en cualquier parte de nuestro disco duro o disco de red. Además dentro del directorio códigos puede considerarse una sub-clasificación entre las versiones de nuestro proyecto, por ejemplo la versión 0.1, versión 0.2 ,

Page 2: Intro PyGame Capitulo 0

etc.

Otra recomendación muy útil y no solo para programar juegos es saber manejar algun sistema de control de versión o CVS tales como Mercurial o Baazar, lo cual nos ayudara tanto en el desarrollo de Juegos como de proyectos de desarrollo de Software, sobre la metodologia de desarrollo hay varias, yo no me centrare en ninguna

Estableciendo un estandar en el desarrollo

Es bueno siempre establecer un estándar a través del desarrollo, esto quieredecir que se debe explicitar cuales son los formatos de archivo, cuales son lasextensiones de cada tipo, cuales son las bibliotecas que se usarán, cuales son lasopciones de compilación, que no se permitirá, etc.

Todo esto sirve cuando se trabaja con muchas personas, un grupo de programadores sobre un mismo proyecto. Como hacer que un programador no se intrometa en mi código y como yo no me intrometo en su código o en la parte del proyecto que el está actualmente desarrollando.

En Internet hay muy buenos artículos sobre como comentar, indentar ydocumentar nuestro código, nuestras clases o en un futuro nuestras propias bibliotecasde desarrollo.

Estableciendo los requerimientos de nuestro proyecto

Antes de empezar a escribir código es necesario establecer que es lo que queremos hacer, A simple vista puede parecer una pregunta sencilla, pero muchos de los que han programado y están empezando recién a crear su juego se encuentran ante un gran abanico de posibilidades de desarrollo de entre las cuales son muy pocas las que parecen desechables, es decir, queremos que nuestro juego tenga todas las características, todos los modos de juego, todos géneros, ocupe todos lo periféricos, etc. Sería mucho mejor establecer un objetivo final, lo mas simple es crear bocetos de lo que queremos que nuestro juego haga.

Convenciones sobre el Codigo Fuente

En si esto se refiere a la manera de escribir codigo fuente, en este curso se usaran generalmente las convenciones para escritura de codigo fuente en Python. Algunas de ellas son:

Formateo de Código

Identacion: Usar 4 espacios, nunca mesclar tabulaciones con espacios.

Tamaño maximo de linea:Limita todas las líneas de codigo a un máximo de 79 caracteres, las de documentacion a

72 caracteres. La forma preferida de dividir líneas largas es utilizar característica de Python de continuar las líneas de forma implícita dentro de paréntesis, otra forma mas elegantes es usar una barra invertida. Asegurate de indentar la línea siguiente de forma apropiada. Algunos ejemplos:

class Rectangle(Blob):def __init__(self, width, height,

color='black', emphasis=None, highlight=0):

if width == 0 and height == 0 and \color == 'red' and emphasis == 'strong' or \

Page 3: Intro PyGame Capitulo 0

highlight > 100:raise ValueError("sorry, you lose")

if width == 0 and height == 0 and (color == 'red' oremphasis is None):

raise ValueError("I don't think so")

Blob.__init__(self, width, height,color, emphasis, highlight)

Líneas en blanco:Separa las funciones no anidadas y las definiciones de clases con dos líneas en blanco.

Las definiciones de métodos dentro de una misma clase se separan con una línea en blanco.

Codificación de Caracteres:El código de la distribución base de Python siempre debería utilizar las codificaciones

ASCII o Latin-1 (también conocida como ISO-8859-1). Para Python 3.0 y superiores, se recomienda UTF-8 en lugar de Latin-1.

Comentarios:Los comentarios que contradicen el código son peores que no tener ningún comentario.

¡Manten siempre como prioridad el mantener los comentarios actualizados cuando cambies el código!

Los comentarios deberían ser frases completas. Si un comentario es una frase osentencia, la primera palabra debería estar en mayúsculas, a menos que sea unidentificador que comience con una letra en minúsculas (¡nunca alteres el identificadorsustituyendo mayúsculas o minúsculas!).

Si un comentario es corto, se puede omitir el punto al final. Los comentarios de bloque generalmente consisten en uno o más párrafos construidos con frases completas, y cada frase debería terminar con un punto.

Nota: esto es un pequeño resumen de la guía de estilo de código, Para mas info véase:

[1] PEP 7, Guía de Estilo para Código C, Guido van Rossum[2] http://www.python.org/doc/essays/styleguide.html[3] PEP 257, Convenciones para Cadenas de Documentación, Goodger, Guido van Rossum [4] http://www.wikipedia.com/wiki/CamelCase[5] Guía de estilo de GNU Mailman de Barry http://barry.warsaw.us/software/STYLEGUIDE.txt[6] PEP 20, El Zen de Python[7] PEP 328, Imports: Multi-Line and Absolute/Relative