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

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

Embed Size (px)

Citation preview

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