Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porDrina Rochel Modificado hace 10 años
1
10. Modelación de un Videojuego. BALLOON ATTACK
2
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
3
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.
4
Clases de Objeto
6
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.
7
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.
8
Definición Clase Globo
9
Definición Clase Jugador
11
Definición Clase Bala
12
Manejo de estados 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.
13
Cada movimiento debe estar en la enumeración: El estado actual debe estar guardado en una variable global: Estados del Jugador
14
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
15
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.
16
Input Mover (detener) a la izquierda: Tecla A y LEFT. Mover (detener) a la derecha: Tecla D y RIGHT. Disparar: Tecla SPACE.
17
Input: Evento al presionar una tecla
18
Input: Evento al soltar una tecla
19
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.
20
Cada tipo, debe estar indicado en la enumeración: El tipo debe estar guardado en una variable global: Tipos de globos
21
En el constructor, según el tipo dado como parámetro se creara un globo con características Rojo o Verde: Tipos de globos
22
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
23
Loop del videojuego Aquí debemos implementar toda la lógica del videojuego: movimientos, colisiones entre elementos, etc. Lo primero es mover al personaje
24
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.
25
Loop del videojuego
26
Lo tercero es mover las balas y los globos. Las balas las movemos dentro del método FrameGame del jugador.
27
Loop del videojuego
28
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.
29
Loop del videojuego
31
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.
32
Loop del videojuego
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.