Download Presentación PPT

Document related concepts
no text concepts found
Transcript
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
de eventos.
 Separar programación de diseño de
juego.

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.

Desafíos de programación

Crear un programa capaz de desplegar
un entorno gráfico navegable.
Python 2.6 / IDLE
 PyGame 2.9
 Photoshop / Paint 
 Notepad 

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: 

Desafíos de programación
Mover y controlar a un personaje
 El personaje interactúa con el entorno
dispuesto por el usuario no ingeniero…

Agilidad en despliegue gráfico
 Detección de colisiones
 Navegación por escenarios
 Despliegue de objetos (muros, arbustos)

Agilidad en despliegue gráfico

Técnica DirtyRect
DirtyRect 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.

Detección de colisiones

Detectar cuando un objeto choca con
otro, y tomar la acción correspondiente.
Un problema encontrado
Personaje recorre el mundo con un step
de 3px (ejemplo)
 Choca con un objeto
 If 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?

Personaje: Bagar
Colisiones con Bagar
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 escenarios
 Objetos “chocables”
 Imagen de fondo
 Items para recolección

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.

Navegación por escenario

Si el personaje colisiona con un borde o
un “portal” en medio del escenario
actual, debe pasar al siguiente
escenario.
Salidas del nivel
Despliegue de objetos

Despliegue de objetos mejor explicado
con la demostración 
UML
CRC

Nombre de Clase:


Responsabilidades:




Object
Subclases:


Dibujar objeto
Borrar objeto
Mover objeto
Superclases:


ACTOR
Bloque, Item, Avatar
Colaboradores

Librería PyGame
CRC

Nombre de Clase:


Responsabilidades:




ACTOR
Subclases:


Detectar colisiones
Definir bordes de personaje
Escuchar teclado para control de personaje
Superclases:


AVATAR
Ninguna
Colaboradores

Librería PyGame