Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio...
-
Upload
cruzita-andujar -
Category
Documents
-
view
220 -
download
0
Transcript of Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio...
![Page 1: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/1.jpg)
Motor RPG
Cristóbal Troncoso
![Page 2: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/2.jpg)
Objetivos
Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores de eventos.
Separar programación de diseño de juego.
![Page 3: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/3.jpg)
Para lograr esto…
Las ‘pantallas’, eventos, ubicación de objetos, mapa, salidas disponibles, diálogos, etc. NO pueden estar programados en el engine.
Idear un sistema consistente para que un usuario pueda agregar todas estas cosas sin tocar el código.
Código flexible a modificaciones.
![Page 4: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/4.jpg)
Desafíos de programación
Crear un programa capaz de desplegar un entorno gráfico navegable.Python 2.6 / IDLEPyGame 2.9Photoshop / Paint Notepad
![Page 5: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/5.jpg)
Herramientas
Python: Lenguaje de programación interpretado (no requiere compilador).
PyGame: Librería para asistir en la creación de juegos o entornos gráficos en Python.
Paint/Photoshop: Gráficos.Notepad:
![Page 6: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/6.jpg)
Desafíos de programación
Mover y controlar a un personajeEl personaje interactúa con el entorno
dispuesto por el usuario no ingeniero…Agilidad en despliegue gráficoDetección de colisionesNavegación por escenariosDespliegue de objetos (muros, arbustos)
![Page 7: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/7.jpg)
Agilidad en despliegue gráfico
Técnica DirtyRectDirtyRect almacena en una lista los objetos
que se están moviendo.Permite actualizar solo el objeto en
movimiento en vez de el escenario completo.
Útil para juegos sin scrolling.
![Page 8: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/8.jpg)
Detección de colisiones
Detectar cuando un objeto choca con otro, y tomar la acción correspondiente.
![Page 9: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/9.jpg)
Un problema encontrado
Personaje recorre el mundo con un step de 3px (ejemplo)
Choca con un objetoIf choque=1 y usuario sigue avanzando,
retroceda en dirección contraria al avance.
If choque=1 y usuario no avanza, ¿hacia donde debe retroceder el personaje?
![Page 10: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/10.jpg)
Personaje: Bagar
![Page 11: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/11.jpg)
Colisiones con Bagar
![Page 12: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/12.jpg)
Despliegue de escenario
Objeto NivelHandler detecta en que escenario se pretende estar. Ejemplo: “Escenario_1”
Recorre la carpeta Escenario_1 en busca de archivos de configuración.Salidas posibles a otros escenariosObjetos “chocables” Imagen de fondo Items para recolección
![Page 13: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/13.jpg)
Despliegue de escenario
NivelHandler toma todas las salidas posibles e items a desplegar, los convierte a objetos de la clase correspondiente y los hace presentes para el juego y personaje.
Al pasar a otro escenario, se “resetean” las listas de objetos para dar paso a los objetos del próximo escenario.
![Page 14: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/14.jpg)
Navegación por escenario
Si el personaje colisiona con un borde o un “portal” en medio del escenario actual, debe pasar al siguiente escenario.
![Page 15: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/15.jpg)
Salidas del nivel
![Page 16: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/16.jpg)
Despliegue de objetos
Despliegue de objetos mejor explicado con la demostración
![Page 17: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/17.jpg)
UML
![Page 18: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/18.jpg)
CRC
Nombre de Clase: ACTOR
Responsabilidades: Dibujar objeto Borrar objeto Mover objeto
Superclases: Object
Subclases: Bloque, Item, Avatar
Colaboradores Librería PyGame
![Page 19: Motor RPG Cristóbal Troncoso. Objetivos Una persona que no sepa programar pueda crear su propio juego de rol a través de editores de niveles y editores.](https://reader035.fdocuments.co/reader035/viewer/2022062409/5665b4711a28abb57c917d68/html5/thumbnails/19.jpg)
CRC
Nombre de Clase: AVATAR
Responsabilidades: Detectar colisiones Definir bordes de personaje Escuchar teclado para control de personaje
Superclases: ACTOR
Subclases: Ninguna
Colaboradores Librería PyGame