La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Juega con serpientes Iniciación a PyGame

Presentaciones similares


Presentación del tema: "Juega con serpientes Iniciación a PyGame"— Transcripción de la presentación:

1 Juega con serpientes Iniciación a PyGame
Miguel de Dios Brecha digital (Vallekas)

2 Índice Videojuegos como herramienta social. 2011 - 2017
Python (Introducción) ¿Cómo se escribe en Python? Variables Bucles Funciones Pygame ¿Porqué Pygame? Imágenes (Sprites) Sonido Joystick/Teclado y ratón Fuentes de texto Conceptos básicos y generales en videojuegos A programar

3 Videojuegos como herramienta social.
¿??¿¿?¿???

4 Videojuegos como herramienta social.

5 Videojuegos como herramienta social.
Matanza cofrade En 2002, el autor fue acusado formalmente por la hermandad del Cristo del Gran Poder tras conocer la intención del grupo "Narco" de distribuir el videojuego.

6 Videojuegos como herramienta social.

7 Videojuegos como herramienta social.

8 Videojuegos como herramienta social.

9 Videojuegos como herramienta social.

10 Videojuegos como herramienta social.

11

12

13 Lenguaje de programación
Lenguaje libre de programación Lenguaje interpretado Nació en 1991 Versión actual 2.7, versión en desarrollo 3.0 “Forma rara de escribir”

14 C Python #include <stdio.h> void hola(void);
int main(int argc, char *argv[]) { hola(); return 0; } void hola(void) printf ("Hola mundo\n"); Python #!/usr/bin/python def hola(): print("Hola Mundo") hola()

15 Como se escribe en Python
Los “bloques de código” se tabulan (con espacios o tabuladores) (pero con razón) Instrucción pass es tu amiga. Las lineas no terminan con ; ...bueno se pueden usar para poner lineas en una linea.... Para cortar una linea larga se usa \ Todos los loops, funciones, métodos, clases y sentencias condicionales terminan en : Los comentarios de una linea comienzan con # y los múltilinea se meten entre """ """ ... def factorial(n): if n == 1: return 1 else: m = n * factorial(n – 1) return m factorial(100) ... factura = panes * \ Patatas * lechugas * 5

16 Variables Las variables se definen de forma dinámica. Tipo Notas
Ejemplo Cadena Mutable 'Cadena' u'Cadena' “Cadena” “””Una cadena Larga y Fea””” Número entero L Booleano True o False Lista (array clásico) [4.0, 'Cadena', True] Tupla (array clásico) Inmutable (4.0, 'Cadena', True) Diccionario (array asociativo) {'key1': 1.0, 'key2': False} Operadores todos excepto ++ y -- (se puede sustituir por a += 1), el “mod” es // y el exponente es ** . Operadores lógicos en humano (“and”, “or”, “not”) Operador lógico especial “is” que vale para testear si algo es “None” o el mismo objeto. Operador lógico especial “in” para testear si un valor esta dentro de un array. Convertir con: int(), str() o float() No hay punteros pero para objetos se puede usar el “None” que es como un “Null”

17 Bucles Bucle for (foreach) Bucle for Bucle while Sentencia condicional
... lista = ["a", "b", "c"] for i in lista: print(i) ... b = 10 for i in range(0, b): print(i) Bucle while ... numero = 0 while numero < 10: numero += 1 print(numero) Sentencia condicional ... donde_estoy = "Madrid" if donde_estoy == "Madrid": print("Buenos días") elif donde_estoy == "Barcelona": print("Bons dies") elif donde_estoy == "Bilbo": print("Egun on") else: print("Good Morning") No hay sentencia condicional switch.

18 Funciones Acepta numero variable de argumentos.
... def suma(a = 1, b = 2, c = 3) return a + b + c a = 10 b = 20 c = 30 print(suma(a, b, c)) print(suma(1, a)) print(suma(c = 10, a = a)) print(suma()) Acepta numero variable de argumentos. Los argumentos se pasan por valor (excepto los mutables arrays). Se puede cambiar el orden de los argumentos. Se puede dejar abierto el numero de argumentos. ... def funcion_varargs1(*array) : print "Array \t" + str(array) for var in array: print(var) def function_varargs2(**array_asociativo): print "Array asociativo \t" + str(array_asociativo) for indice, valor in array_asociativo.items(): print(str(indice) + " " + str(valor)) funcion_varargs1(1,2,3) funcion_varargs2(a = 2, b = 2, c = 2)

19 Conjunto de módulos (librerías) para Python
Basado en LibSDL. Múltiplataforma (donde funcione Python y LibSDL funciona) Ofrece fácil acceso a: 2D Sprites/Colisiones CDRom/Sonido/Música/Midi Teclado/Ratón/Joystick Fuentes Webcam (experimental) Efectos gráficos (básico) Formas geométricas (básico) Vídeo (básico) (Python 3 NO) NO ofrece: Red 3D (aunque si a través de OpenGL) Físicas

20 ¿Porqué Pygame? Comparación muy “superficial” con otros “engines”.
Porque es Libre. Unity es mas potente pero es Privativo. 2017 TENEMOS GODOT Porque se programa en Python. LöVE es mas completo pero es en el LUA. Fenix / Bennu se programa en....Div2. Porque es un proyecto maduro. Cocos2 es un proyecto muy nuevo. Screenshots de los juegos/proyectos listados en PyGame.org desde el año 2001 al año Un total de 1100.

21 Imágenes (Sprites) Trae un sistema básico (Surfaces) y la forma mas de alto nivel (Sprites). Surfaces: Cargar Copiar Pegar Modificar Ficheros soportados: JPG PNG GIF (non animated) BMP PCX TGA (uncompressed) TIF LBM (and PBM) PBM (and PGM, PPM) XPM Sprites: Cargar Copiar Pegar Modificar Colisiones Posición

22 Sonido Esta dividido en varios subobjectos:
pygame.mixer.music - música de fondo pygame.midi pygame.mixer - “sonidos pequeños” pygame.cdrom Soporta mp3, wav, ogg y midi.

23 Joystick/Teclado y ratón
El acceso a estos es a traves de los eventos pygame.event.Event. KEYDOWN unicode, key, mod KEYUP key, mod MOUSEMOTION pos, rel, buttons MOUSEBUTTONUP pos, button MOUSEBUTTONDOWN pos, button JOYAXISMOTION joy, axis, value JOYBALLMOTION joy, ball, rel JOYHATMOTION joy, hat, value JOYBUTTONUP joy, button JOYBUTTONDOWN joy, button O se puede consultar el estado de ellos. pygame.mouse.get_pos(): return (x, y)

24 Fuentes de texto Soporta: Fuentes TTF
Unicode (si la fuente TTF tiene los caracteres) No soporta: Texto enriquecido (en medio texto una negrita) Texto html Uso: Carga una fuente (del sistema) o fichero. Usa el objeto fuente para renderizar texto como sufarce (imagenes)

25 Conceptos básicos y generales en videojuegos
Colisión de sprites: Areas Cuadradas (Rápido) Subareas cuadradas (Rápido) Circunferencias (Rápido) Pixel perfect (Lento) Físicas

26 Conceptos básicos y generales en videojuegos
Tiles, los mosaicos.

27 Conceptos básicos y generales en videojuegos
Sprites Animar paso a paso.

28 A programar Ejemplos Remake simple...simple del Snake.
Ejemplo muy muy simple de Tiles y colisiones

29 Miguel de Dios TRES.14159@GMAIL.COM
Links de interes. Miguel de Dios


Descargar ppt "Juega con serpientes Iniciación a PyGame"

Presentaciones similares


Anuncios Google