Python
Curso de Python, iniciación a la programación, aprende a programa con python, uno de los lenguajes más utilizados en las aplicaciones web, el desarrollo de software, etc.. Es eficiente y facil de aprender y se puede ejecutar en muchas plataformas diferentes. Python se puede descargar de forma gratuita por lo que podrás practicar en tu casa sin problemas.
Iniciación
a Python
Primeros pasos
iniciación a la programación en python, no se necesitan conocimientos previos de programación en ningún otro lenguaje, conceptos básicos, como variables, strings, enteros, booleanos, print, input, formateo de textos.
Condicionales
Introdución a los condicionales, if, else, elif, concatenación, and y or, in. Mediante los condicionales podemos conseguir que nuestros programas realicen una tarea u otra distinta en función de una condición o varias.
Funciones
Uso de las funciones en python, def, parametros o argumentos, return, A través de las funciones podemos desarrollar programas más ordenados y realizar varias veces las mismas tareas sin tener que duplicar código, lo que facilita mucho la programación y sobre todo los cambios que se tengan que hacer en un futuro en el código..
Bucles
Programación de bucles, while, for, break, range, continue, anidados. Los bucles son imprescindibles en la programación, sirven para realizar varias veces una tarea, crear contadores, etc.
Listas, Tuplas y Diccionarios
Las listas, tuplas y diccionarios son una de las herramientas más potentes de python, sirven para guardar en memoria todo tipo de información, valores alfanuméricos, como nombres por ejemplo, números, etc.. pero también sirven para guardar todo tipo de objetos que iremos viendo en el curso, otras listas, imágenes, botones, cuadros de texto, sprites, dibujos, etc.. Con las listas se pueden realizar muchas tareas que en otros lenguajes de programación hariamos con arrays.
En este apartado veremos diferentes herramientas para trabajar con las listas, como append, len, in, insert, sort, reverse, count, capitalize, index, remove, del, pop, clear, acceder a cualquier elemento de la lista, tupla o diccionario, etc..
Clases
Creación de clases, en la programación orientada a objetos podemos tratar cualquier cosa como un objeto, por ejemplo los datos de una persona, imágenes, controles, etc.. y para ellos son fundamentales las clases, por lo que en este punto veremos como trabajar con clases, herencias, etc.
Interfaces Gráficas
Tkinter
La librería tkinter viene instalada por defecto en python, es un intermediario entre el programa y el usuario, formada por ventanas, botones, menús, casillas de verificación, cuadros de texto, etc.. es decir lo que conocemos como una aplicación de escritorio cualquiera. Aprenderemos a crear una ventana, darle tamaño, ponerle título e icono, hacerla redimensionable o no, etc..
Label
En las ventanas se puden insertar diferentes elementos llamados widgets, como por ejemplo una etiqueta para escribir cualquier texto en pantalla, veremos diferentes maneras de colocar el Label y demás widgets en la ventana (pack, place, grid) asi como varias propiedades de las mismas, width, height,
anchor, side, foreground, background, font, relief, borderwidth, relx, rely, reldiwth, relheight, etc..
Frame y LabelFrame
Widgets para organizar nuestra ventana en grupos de botones, etiquetas, opciones, etc.. veremos diferentes propiedades de los Frames como expand, fill, además de otras propiedades comunes a los Labels.
PhotoImage
Veremos como cargar fotos en los labels utilizando PhotoImage, así como diferentes propiedades como zoom, subsample.
Pil/Pillow.
Librería externa para ampliar las posibilidades de trabajar con imagenes, permite cargar imagenes con más formatos, ademas de mannipularlas con diferentes propiedades como Image, ImageTk, size, width, height, resize, rotate, save, ImageOps, invert, etc...
Button
Veremos como crear botones de comando para las aplicaciones, usando propiedades de los mismos como anchor, side, command, activebackground, activeforeground, state,etc..
Entry
Creación de típicos cuadros de texto desde los que el usuario podra introducir datos en el programa, con diferentes propiedades, muchas ya vistas al ser comunes a widgets ya vistos, como los label, etc, y otras específicas o que no hemos visto todavía como show, focus, insert, get, delete, select_range, textvariable, etc..
messagebox
Típico cuadro de mensaje para que el uusario interactúe con nuestro programa cuando sea necesario usando los argumentos title y message para configuar los diferentes tipos como showinfo, showwarning, showerror, askyesno, askokcancel, askretrycancel, askquestion, askyesnocancel
Text, Scrollbar
Veremos como crear cuadros de texto con multiples líneas utilizando la clase Text. La mayoría de los métodos y propiedades serán como en los Entry, pero veremos algunos específicos como tag_configure, tag_add, tag_names, tag_remove, etc.. Cuando tenemos contnroles con múltiples líneas necesitaremos las típicas barras de desplazamiento, en este apartado veremos como crearlas y configurarlas usando yview, yscrollcommand, wrap, xview, etc.
RadioButton, Checkbutton, Listbox
Veremos el resto de widgets, con diferentes usos como crear grupos de opciones o casillas de verificación, listas para elegir una opción fijas o desplegables, etc..
Librearía para crear Juegos
Pygame
Aprenderemos a instalar la librería para programar juegos Pygame, asi como a crear las instrucciónes básicas para comenzar a trabajar con ella, creación de ventanas, titulos, iconos, etc.., usando diferentes métodos y propiedades, import, init, display_set_mode, display_set_caption, pygame.event_get, color, fill, update, flip, etc..
Display
con esta clase manejaremos todo lo que tiene que ver con la pantalla, tamaño, si va a ser redimensionable, título, icono, etc.. para ello usaremos Info, set_mode, set_caption, set_icon, FULLSCREEN, RESIZABLE, etc..
draw
usando los diferentes métodos de esta clase, draw.rect, draw.circle, draw.line, draw.lines, draw.aaline, draw.aalines, draw.polygon, draw.ellipse, draw.arc realizaremos diferentes dibujos, rectángulos, circulos, elipses, poligonos, líneas, etc..
Surface
Generaremos diferentes superficies donde poder trabajar con la clase Surface y la configuraremos usando sus métods, set_colorkey, set_alpha, SRCALPHA, get_width, heeight o size, get_rect, blit, copy, fill, scroll, etc..
Rect
Mediante la clase Rect que marcará las dimensiones rectángulares de una superficie, por ejemplo una imágen que represente al personaje de un juego, podremos manipular dicha superficie como por ejemplo su posición en la pantalla, x, y, top, bottom, left, right, center, calcular su tamaño con width, w, height, h, size, usar métodos como copy, move, inflate, update, union, etc..
Rect Colisiones
Manejaremos todo el tema de las colisiones entre los diferentes personajes del juego, es decir cuando parte del rectángulo de uno coincide en algún pixel con el rectángulo del otro, usando contains, collidepoint, colliderect, collidelist, collidelistall, collidedict, collidedictall
Load
Aprenderemos a cargar imágenes creando una superficie para ello, y manipularla con convert, convert_alpha, set_colorkey, get_rect, get_size, etc..
transform
Usaremos transform para manipular imagenes pudiendo cambiar su tamaño, volterla, girarla, etc.. usando métodos como scale, smoothscale, flip, rotate, chop, rotozoom, etc..
font, freetype
con Font y freetype podremos cargar fuentes de letra, modificar su tamaño, color, etc y colocarlos en una superficie, algunos de los métodos y propiedades son, SysFont, match_font, bold, italic, underline, render, render_to, get_fonts, default_font, size, style, strong, wide, antialiased, vertical, rotation, origin, fgcolor, bgcolor, etc..
time
módulo para manejar todo lo que tiene que ver con el tiempo, por ejemplo hacer una pausa de varios milisegundos, cálcular el tiempo transcurrido entre dos sucesos, marcar los frames por segundo a los que se va a mover el juego, para ello usaremos algunos métodos como get_ticks, wait, delay, Clock, tick, get_time, get_fps, etc..
Eventos
Un evento es cuando por ejemplo el usuario pulsa alguna tecla o realiza alguna acción con el ratón, de esta forma podremos decirle a nuestro programa que tiene que hacer si ocurre alguno de estos eventos, para ello usaremos las siguientes instrucciones y/o métodos: event_get, KEYDOWN, KEYUP, key.get_pressed, MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION, MOUSEWHEEL, mouse.get_pos, mouse_get_pressed, etc..
Clases y listas
Para manejar varios personajes es conveniente usar listas y clases que ya hemos visto con anterioridad para facilitar la tarea, de esta forma podremos mover todos los personajes por ejemplo llamando a un método de la clase que loscontenga
Sprite
En pygame tenemos una clase predefinida llamada Sprite (asi es como se llama a los diferentes elementos con los que interactuar en un juego) que nos facilitará la creación del juego
El orden de los temas es orientativo, pudiendo ser alterado según las necesidades de cada alumno. Asimismo se puede realizar el curso completo, viendo todos los temas aquí incluidos o cursos parciales, básico, avanzado, etc.