10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños...

34
10. Modelación de un Videojuego. BALLOON ATTACK

Transcript of 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños...

Page 1: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

10. Modelación de un Videojuego.BALLOON ATTACK

Page 2: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente en este planeta puede matarlos, excepto la tuya, por ello debes derrotar a los malvados invasores, y que ninguno de ellos aterrice en La Tierra.

BALOON FIGHT

Page 3: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Debemos identificar cada objeto del mundo y crear una clase para ellos.

A simple vista las clases que interfieren en el videojuego son:◦ Globo◦ Bala◦ Protagonista

Además de una clase WorldManager que será la encargada del ciclo del videojuego.

Page 4: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.
Page 5: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.
Page 6: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Debemos identificar las acciones principales de cada objeto y crear un método para cada una de esas acciones.

Además cada clase tendrá un método FrameGame(), que se encargará de la lógica del objeto en un determinado frame.

Page 7: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Debemos identificar los atributos de cada objeto del videojuego, además del tipo de dato de cada atributo, y si ésta es constante o variable.

Finalmente, debemos identificar los parámetros que aceptará el constructor para inicializar todas sus variables.

Page 8: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Definición Clase Globo

Page 9: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Definición Clase Jugador

Page 10: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Definición Clase Jugador

Page 11: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Definición Clase Bala

Page 12: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

El manejo de estado se realiza para los estados del videojuego mismo (pause, menú, loop principal) y estados de cada uno de los personajes del videojuego, tanto de IA en enemigos como de movimientos en el protagonista.

Los estados se manejan con enumeraciones: Enum.

En este caso sólo el personaje tiene estados, y estos son para determinar el tipo de movimiento.

Page 13: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Cada movimiento debe estar en la enumeración:

El estado actual debe estar guardado en una variable global:

Estados del Jugador

Page 14: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Cuando el usuario desee mover al jugador se asignará a éste:

Si el usuario detiene al jugador, éste se detendrá según la tecla soltada:

Estados del Jugador

Page 15: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Debemos identificar el input del usuario y asignarlo a cada acción del personaje o a acciones que pueda realizar éste en el mundo.

En este caso debemos asignar las teclas del teclado a las acciones del personaje.

Mover el personaje o disparar al presionar una tecla y detener al personaje si se suelta la tecla.

Page 16: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Mover (detener) a la izquierda:◦ Tecla A y LEFT.

Mover (detener) a la derecha:◦ Tecla D y RIGHT.

Disparar:◦ Tecla SPACE.

Page 17: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Input: Evento al presionar una tecla

Page 18: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Input: Evento al soltar una tecla

Page 19: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Muchos objetos pueden tener distintos “tipos” que los representen.

Por ejemplo de una clase enemigo pueden hacerse varios tipos de éste, con distintos atributos y comportamientos.

En este caso habrá 2 tipos de globos: Rojos y Verdes. Los primeros son más rápidos, tienen menor probabilidad de aparición y si son muertos entregan mayor puntaje.

Page 20: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Cada tipo, debe estar indicado en la enumeración:

El tipo debe estar guardado en una variable global:

Tipos de globos

Page 21: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

En el constructor, según el tipo dado como parámetro se creara un globo con características Rojo o Verde:

Tipos de globos

Page 22: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Se debe implementar un contenedor para cada conjunto de objetos que se quiera manejar: mover, detectar colisiones, etc.

En este caso se necesita una lista para contener a los globos y otra para las balas que dispara el personaje.

En WorldManager:

En Jugador:

Contenedores

Page 23: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Aquí debemos implementar toda la lógica del videojuego: movimientos, colisiones entre elementos, etc.

Lo primero es mover al personaje

Page 24: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Lo segundo es calcular cual será la condición para crear un nuevo globo:

Mostraremos sólo 5 globos en pantalla.

La probabilidad de que una bala se inserte es 5 / 50. Y como un globo rojo tiene menor probabilidad de aparición, éste tendrá probabilidad de 1 / 50 y el verde 4 / 50.

Page 25: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Page 26: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Lo tercero es mover las balas y los globos.

Las balas las movemos dentro del método FrameGame del jugador.

Page 27: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Page 28: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego Además debemos checkear si es que las balas o los

globos han atravesado la pantalla, si es así los eliminamos.

Para ello la posición Y del sprite de los globos debe ser mayor que la altura de la ventana.

Y la posición Y del sprite de la bala debe ser menor que 0.

Page 29: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Page 30: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Page 31: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Finalmente debemos determinar si hubo colisiones entre la bala y el globo, para esto iteramos entre ambas listas.

Además si hubo una colisión agregamos el valor del globo al puntaje del jugador.

Page 32: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

Loop del videojuegoLoop del videojuego

Page 33: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.

BALLOON ATTACK

Page 34: 10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.