Contenido:

Toma de contacto:
¿Por qué este curso? Condiciones de uso. ¿Cómo puedo colaborar? ¿Cómo puedo preguntar dudas?
¿Qué herramientas emplearemos?
Temas del curso:
(Al lado de cada tema se muestra si está completo el planteamiento, y si incluye fuentes en C/C++, Pascal o Java).

1. Preparando las herramientas (cómo instalar los compiladores que usaremos).   (Planteamiento)  (C)  (Pascal)  (Java)
2. Entrando a modo gráfico y dibujando.   (Planteamiento)  (C)  (Pascal)  (Java)
3. Leyendo del teclado y escribiendo texto.   (Planteamiento)  (C)  (Pascal)  (Java)
4. Cómo generar números al azar. Un primer juego: Adivinar números.   (Planteamiento)  (C)  (Pascal)  (Java)
5. Un segundo juego: Ahorcado.   (Planteamiento)  (C)  (Pascal)  (Java)
6. Evitemos esperar al teclado. Tercer juego: motos de luz.   (Planteamiento)  (C)  (Pascal)  (Java)
7. Mapas. Cuarto juego (aproximación "a"): MiniSerpiente 1.   (Planteamiento)  (C)  (Pascal)  (Java)
8. Cómo crear figuras multicolor que se muevan. Cuarto juego (aproximación "b"): Miniserpiente 2.   (Planteamiento)  (C)  (Pascal)  (Java)
9. Evitemos los parpadeos. Cuarto juego (aproximación "c"): Miniserpiente 3.   (Planteamiento)  (C)
10. Más sobre la paleta de colores.   (Planteamiento)
11. Cuarto juego (completo): Serpiente.   (Planteamiento)  (C)
12. Utilizando el ratón. Quinto Juego: Puntería.   (Planteamiento)  (C)
13. Un poco de matemáticas para juegos. Sexto Juego: TiroAlPlato.   (Planteamiento)  (C)
14. Cómo reproducir sonidos. Séptimo juego: SimeonDice.   (Planteamiento)  (C)
15. Formatos de ficheros de imágenes más habituales. Cómo leer imágenes desde ficheros..   (Planteamiento)  (C)
16. Octavo juego (planteamiento): MataMarcianos.   (Planteamiento)  (C)
17. Cargar y mostrar imágenes. Octavo juego (aproximación "a"): Marciano 1.   (Planteamiento)  (C)
18. Mostrar y mover sólo un marciano que cambia de forma. Octavo juego (aproximación "b"): Marciano 2.   (Planteamiento)  (C)
19. Moviendo una nave y un enemigo a la vez con velocidades distintas. Octavo juego (aproximación "c"): Marciano 3.   (Planteamiento)  (C)
20. Incluyendo un disparo y comprobación de colisiones. Octavo juego (aproximación "d"): Marciano 4.   (Planteamiento)  (C)
21. Moviendo varios marcianos a la vez. Octavo juego(aproximación "e"): Marciano 5.   (Planteamiento)  (C)
22. Un doble buffer para evitar parpadeos. Octavo juego (aproximación "e"): Marciano 6.   (Planteamiento)  (C)
23. Enemigos que disparan: Marciano 7.   (Planteamiento)  (C)
24. Un "bucle de juego" clásico: aproximación a Columnas.   (Planteamiento)  (C)
25. Avanzando Columnas: primera parte de la lógica de juego.   (Planteamiento)  (C)
26. Un Columnas jugable: interacción con los elementos del fondo.   (Planteamiento)  (C)
27. Completando Columnas: borrado correcto, puntuación.   (Planteamiento)
28. La aproximación orientada a objetos (1). Toma de contacto con un primer "arcade": MiniMiner.   (Planteamiento)  (C++)
29. La aproximación orientada a objetos (2). MiniMiner 2: Aislando del hardware.   (Planteamiento)  (C++)
30. La aproximación orientada a objetos (3). MiniMiner 3: Personaje y enemigo como clases   (Planteamiento)  (C++)
31. La aproximación orientada a objetos (4). MiniMiner 4: Una pantalla de juego real   (Planteamiento)  (C++)
32. Colisiones con enemigos. Perder vidas. Aplicación a MiniMiner (versión 5)   (Planteamiento)  (C++)
33. Volver a comenzar una partida. Una pantalla de presentación animada. Imágenes transparentes. Aplicación a MiniMiner (versión 6)   (Planteamiento)  (C++)
34. Añadiendo funcionalidades a "MiniMiner" (1): chocar con el fondo, saltar. (versión 7)   (Planteamiento)  (C++)
35. Una consola para depuración   (Planteamiento)  (C++)
36. Añadiendo funcionalidades a "MiniMiner" (2): mejora del movimiento, recoger objetos.   (Planteamiento)  (C++)
37. Añadiendo funcionalidades a "MiniMiner" (3): avanzar a otra pantalla.   (Planteamiento)  (C++)
38. Una lista con las mejores puntuaciones. Cómo guardarla y recuperarla.   (Planteamiento)  (C++)
39. Manejo del joystick.   (Planteamiento) 
40. Ligeros retoques a MiniMiner.   (Planteamiento) 
41. Enemigos "inteligentes": PicMan (1: esqueleto).   (Planteamiento)
42. Enemigos "inteligentes": PicMan (2: varios enemigos).   (Planteamiento)
43. Empleando distintos tipos de letra.   (Planteamiento)
44. Otro clásico más: LaRana.   (Planteamiento)
45. Introducción a los Scrolls.   (Planteamiento)  (C++)
46. Un primer juego de scroll horizontal, MiniMarianoBros.   (Planteamiento)
47. Distintos enemigos en cada pantalla. Aplicación a MiniMiner.   (Planteamiento)

Próximos apartados previstos (el orden puede cambiar):

??. Introducción de nombres para la tabla de records. (*)
??. Cómo comprobar varias teclas a la vez. Cómo redefinir las teclas con las que jugaremos. (*)
??. Como saber qué modos gráficos tenemos disponibles. (*)
??. Distintas resoluciones sin cambiar el programa. (*)
??. Guardando y recuperando configuraciones. (*)
??. Primer acercamiento a los juegos 3D: la vista isométrica. (*)
??. Otro clásico: NBert. (*)
??. Otro clásico sencillo y adictivo: miniTetris (*)
??. Temporizadores con Allegro. (*)
??. Otro clásico: MiniAsteroides. (*)
??. Y otro más: Multipede. (*)
??. Introducción a las figuras 3D: representación, movimiento y rotación. (*)
??. Creando una pantalla de bienvenida animada en 3D. (*)
??. Figuras 3D con texturas. (*)
??. Un juego con figuras 3D: StarFighting. (*)
??. Imágenes en varios planos. (*)
??. Un matamarcianos con scroll vertical y varias capas: Nevious. (*)
??. Compactando varios ficheros de datos en uno. (*)
(...)


(Nota: este temario puede ir cambiando, no hay ninguna garantía de que se siga exactamente ese orden en los capítulos que aún no están creados, que son los marcados con un asterisco *).