Sei sulla pagina 1di 104

Piratas del Espacio : El Caso Norby

Autores: Jos Vzquez Infantes Gonzalo Rodrguez-Baltans Daz

Piratas del Espacio: El caso Norby

ndice
Introduccin!
Origen del proyecto ! Objetivos del proyecto ! Riesgos ! Stakeholders ! Fechas de entrega ! Grupo de desarrollo !

5
5 6 6 7 7 7

Requisitos funcionales del proyecto !


Dependencias de Software !
Engine 3D!

8
8
8

Requisitos organizativos !
RO-1: Repositorio de versiones ! RO-2: Repositorio generalista ! RO-3: Software gestor de proyectos! RO-4: Software de modelado UML y Casos de usos !

9
9 9 9 10

Requisitos funcionales de la aplicacin!


Anlisis de mdulos del sistema !
AMS-1: Anlisis Mdulo Controles ! AMS-2: Anlisis Mdulo Naves! AMS-4: Anlisis Mdulo Niveles ! AMS-5: Anlisis Mdulo Fsicas ! AMS-6: Anlisis Mdulo Hud!
2

10
10
10 11 19 19 21

Piratas del Espacio: El caso Norby AMS-7: Anlisis Mdulo IA ! AMS-8: Anlisis Mdulo Efectos grcos! AMS-9: Anlisis Mdulo Sonido! AMS-10: Anlisis Mdulo DB ! AMS-11: Anlisis Mdulo Men! 23 23 24 24 25

Diagramas de casos de uso !


DC1-1 Desarrollo caso de uso del Subsistema Men! DC1-2 Desarrollo de caso de uso Salir! DC1-3 Desarrollo de caso de uso Ver Controles! DC1-4 Desarrollo de caso de uso Ver Puntuaciones ! DC1-5 Desarrollo de caso de uso Cargar Sonido! DC2-1 Desarrollo de caso de uso Atrs (Ver puntuaciones)! DC2-2 Desarrollo de caso de uso Atrs (Ver controles)! DC1-1 Desarrollo caso de uso del Subsistema Nueva Partida! DC1-2 Desarrollo de caso de uso Controlar la Nave! DC1-3 Desarrollo casos de uso Gestin de elementos del HUD! DC1-4 Desarrollo de caso de uso Matar! DC1-5 Desarrollo de caso de uso Morir! DC1-6 Desarrollo de caso de Salir! DC1-7 Desarrollo de caso de uso Pausa! DC1-8 Desarrollo de caso de uso Ganar Partida ! DC1-9 Desarrollo de caso de uso Guardar Puntuacin! DC1-10 Desarrollo de caso de uso Cargar Nivel! DC2-1 Desarrollo de caso de uso Trompo a la derecha ! DC2-2 Desarrollo de caso de uso Trompo a la izquierda! DC2-3 Desarrollo de caso de uso Arriba ! DC2-4 Desarrollo de caso de uso Izquierda !
3

25
26 27 28 29 30 30 32 33 35 36 37 38 39 42 44 45 46 47 49 50 52

Piratas del Espacio: El caso Norby DC2-5 Desarrollo de caso de uso Abajo! DC2-6 Desarrollo de caso de uso Derecha! DC2-7 Desarrollo de caso de uso Disparar ! DC2-8 Desarrollo de caso de uso Colisionar con la nave enemiga! DC2-9 Desarrollo de caso de uso Ser disparado por el enemigo! DC2-10 Desarrollo de caso de uso La nave colisiona con el enemigo! DC2-11 Desarrollo de caso de uso Cargar Sonido! DC2-12 Desarrollo de caso de uso Generar Skybox ! DC2-13 Desarrollo de caso de uso Gestin Nivel! DC2-14 Desarrollo de caso de uso Crear Naves ! DC3-1 Desarrollo de caso de uso Msica de Nivel! DC3-2 Desarrollo de caso de uso Efectos Sonoros! DC3-3 Desarrollo de caso de uso Duracin Nivel! DC3-4 Desarrollo de caso de uso Gestin IA! DC3-5 Desarrollo de caso de uso Crear Nave Principal! DC3-6 Desarrollo de caso de uso Crear Bombardero! DC3-7 Desarrollo de caso de uso Crear Kamikaze! DC3-8 Desarrollo de caso de uso Crear Clon! DC3-9 Desarrollo de caso de uso Crear Hunter! 54 55 57 59 61 63 65 65 66 67 67 69 70 72 74 76 78 80 82

Priorizacin de casos de uso !

84

Diagramas de secuencia!
Controlar la nave ! Crear nivel! Ganar Partida ! Generar Skybox ! Guardar Puntacin! Matar Enemigo !
4

86
87 89 91 93 94 95

Piratas del Espacio: El caso Norby

Pausa ! Salir! Ver puntuaciones !

96 98 99

Diagrama de clases ! Glosario !

100 101

Introduccin

Origen del proyecto


! Este proyecto surge de la idea de un videojuego escrito en Python sobre guerras entre naves espaciales llamado UPO: The Game, ese proyecto se inspiraba en el clsico juego de marcianitos, pero una versin ms moderna y sosticada. ! UPO: The Game fue creado entre abril y junio del 2009 como parte de la asignatura de libre conguracin Proyecto informtica. El proyecto fue tutorizado por Domingo Savio Rodrguez Baena y calicado por sobresaliente.

Piratas del Espacio: El caso Norby ! Para el curso 2009-2010 la asignatura Ingeniera del software de gestin II plantea la ejecucin de un proyecto de mediana envergadura. Nuestro grupo de desarrollo propone crear una versin actualizada de UPO: The Game. !

Objetivos del proyecto


! El objetivo del proyecto es el de desarrollar un videojuego en 3 dimensiones que sea estable, que maneje una base de datos y, principalmente, que sea divertido. ! Nuestros objetivos personales son claros, queremos aprender y formarnos en el arte de la creacin de videojuegos. Estamos dispuestos a demostrar la ecacia y eciencia del lenguaje JAVA aplicado al nuevo motor grco JMonkey, del cual actualmente hay muy poca informacin y escasez de tutoriales en espaol. ! Pretendemos obtener informacin suciente para posteriormente crear un tutorial en espaol para otros espaoles dispuestos a seguir nuestros pasos y crear videojuegos en este motor que tanto nos gusta.

Riesgos
! Los principales riesgos que amenazan a nuestro proyecto son:

Tiempo: Tenemos una fecha lmite de entrega inamovible que es entre el 18 y el 22 de Enero. ! Conocimientos: El proyecto requiere de unos conocimientos no asimilados previamente y se requiere de un tiempo extra para el aprendizaje de dichos conocimientos. Implementacin: La implementacin es bastante compleja y la informacin es escasa, y en algunos casos nula, tanto en material fsico como digital. Tamao: Los integrantes del grupo son tan slo dos personas y el proyecto es mucho ms grande de lo que est previsto para el tiempo estipulado.
6

Piratas del Espacio: El caso Norby Portabilidad: El proyecto deber ser portable a los sistemas operativos ms comunes de hoy en da, tales como los pertenecientes a Linus, Mac, Windows. Concurso: Participamos en el concurso de software libre de Espaa. Por lo que debemos adaptar todas la documentacin a su formato y al de la asignatura a la vez. Lejana: Los integrantes del grupo viven en poblaciones distintas y no es posible quedar frecuentemente para debatir las ideas. Participaciones: Hemos dotado al proyecto de participaciones en partes especcas del proyecto como diseo grco 3D, diseo grco 2D y guin. No es factible la posibilidad de participar todos fsicamente y crear un ambiente de equipo correcto, por lo que un miembro del equipo deber encargarse de la organizacin de todo el personal participante.

Stakeholders
Norberto Daz Daz y Francisco Antonio Gmez Vela: es el destinatario del software. Tendr acceso al repositorio de datos, a los documentos y recursos. Jugador: ser el usuario de la aplicacin. Jose Vzquez Infantes y Gonzalo Rodrguez-Baltans Daz: son los responsables del desarrollo.

Fechas de entrega
16 Octubre: 1 Entrega Documento de visin. 6 Noviembre: 2 Entrega Iteracin de comienzo. 27 Noviembre: 3 Entrega Iteracin de Elaboracin. 18 Diciembre: 4 Entrega Iteracin de construccin . 22 Enero: Entrega Final Iteracin de transicin.

Grupo de desarrollo
Concepto, Anlisis, Diseo e Implementacin: Gonzalo Rodrguez-Baltans Daz y Jos Vzquez Infantes.
7

Piratas del Espacio: El caso Norby Equipo de Diseo Grco 3D: Jos Carlos Sendino Fernndez y Antonio Herrera Prez. Diseo Grco 2D: Carlos Atienza Gmez. Guin: Vicente Llorent Vaquero. Msica: Julio Marn Daz. Cine: Daniel Amat.

Requisitos funcionales del proyecto

Dependencias de Software
Engine 3D ! Dado el lmite de tiempo que tenemos y la complejidad del proyecto se hace necesaria la utilizacin de una engine. La engine deber ser capaz de abstraer el renderizado de objetos tridimensionales, colisiones bsicas, sonido, efectos grcos y transformaciones. ! La engine deber ser compatible con el lenguaje Java. Deber tener documentacin y tutoriales que permitan un desarrollo continuo sencillo.
8

Piratas del Espacio: El caso Norby ! Tras considerar las opciones hemos llegado a la conclusin de que la engine que ms de adapta a nuestras necesidades es JMonkey. JMonkey es una engine 3D opensource con un estado de desarrollo maduro. Cuenta con un foro activo y canal de chat con desarrolladores los que preguntar dudas. !

Requisitos organizativos
RO-1: Repositorio de versiones ! Dado que el grupo de desarrollo es multiusuario y la complejidad del proyecto se hace necesario utilizar un software de control de versiones. Este software deber permitir de manera gil y sencilla que todos los miembros del proyecto tengan acceso al cdigo fuente. ! Tras evaluar las caractersticas de Subversion, Mercurial y CVS hemos llegado a la conclusin de que Mercurial es el ms idneo, por su rapidez y documentacin disponible. ! Para utilizar este software de gestin de versiones se necesita un servidor que est disponible las 24 horas del da 7 das a la semana 365 das al ao. Se usar Kenai para esta tarea, ya que es gratuito y tiene una perfecta integracin con Netbeans.

RO-2: Repositorio generalista ! El grupo de desarrollo cuenta con aportaciones de gente no tcnica. As mismo existen aportaciones que no son parte del cdigo y no hace falta controlar su versin. Para estos casos se ha habilitar un segundo repositorio de carcter general. ! El servicio encargado de este repositorio es Dropbox. Este servicio permite disponer de 2GB de almacenamiento online. Para utilizarlo entre todos los usuarios del grupo de desarrollo crearemos una carpeta compartida. ! Esta carpeta sincronizar los datos con todos los miembros del grupo. Es simple, eciente y efectivo, adems de gratuito, por lo que Dropbox es idneo para la tarea.

RO-3: Software gestor de proyectos


9

Piratas del Espacio: El caso Norby ! Dada la complejidad del proyecto, la cantidad de personas involucrada y los requisitos de los stakeholders se hace necesario utilizar un software que ayude a la distribucin de tareas y la gestin de tiempo. ! En Windows el mejor software de gestin de proyectos es Project, de Microsoft. Se utilizar como herramienta secundaria. ! En Mac se dispone de Merlin y de OmniPlan. Se usar OmniPlan porque resulta ms sencillo, ms barato y adems tiene grandes opciones de exportacin, permitiendo crear informes automatizados, diagramas de Gantt y diagramas de distribucin de tareas. ! OmniPlan permite compatibilidad con cheros de Project. Ser usado como gestor de proyectos principal.

RO-4: Software de modelado UML y Casos de usos ! Se necesita un software capaz de ayudar al modelado de casos de usos y diagramas UML para las clases. Se usar una combinacin de Microsoft Visio y OmniGra"e. ! Microsoft Visio se ejecutar en plataformas Windows 7 y Windows Vista y OmniGra"e en Mac Os Snow Leopard.

Requisitos funcionales de la aplicacin

Anlisis de mdulos del sistema


AMS-1: Anlisis Mdulo Controles ! El mdulo Controles aporta la funcionalidad que posibilita al usuario interactuar con el sistema, por medio del teclado y el ratn. ! El ratn se utiliza mientras el usuario est en el men del videojuego. El teclado se utiliza cuando el usuario est jugando un nivel para controlar a la nave.

10

Piratas del Espacio: El caso Norby ! La asignacin de las teclas para el control de la nave es el siguiente:

Controles Tecla
Wo# Ao$ Do% So& Espacio L K !

Accin
La nave se mueve hacia arriba La nave se mueve hacia la izquierda La nave se mueve hacia la derecha La nave se mueve hacia abajo La nave se dispara La nave hace un trompo a la derecha La nave hace un trompo a la izquierda

AMS-2: Anlisis Mdulo Naves ! El mdulo Naves debe proporcionar toda la funcionalidad relacionada con las naves. Debe permitir la creacin sencilla de las Naves. El juego consta de 5 tipos de naves. Las naves tienen una serie de atributos que las denen, adems de un aspecto propio.

Propiedades bsicas Nave Kamikaze Vida


100

Velocidad
70

Armas
Cargas explosivas

Puntuacin
200

Dao de colisin
100

11

Piratas del Espacio: El caso Norby

Propiedades bsicas Nave Clon Hunter Bombardero Jugador Vida


200 230 180 1000

Velocidad
65 70 80 100

Armas
Can de fotones Can de Gauss Can de plasma Caones Alfa

Puntuacin
300 500 250 -

Dao de colisin
50 50 70 400

Armas

Tipos de armas

Descripcin
Son cargas de plutonio en estado de semi-sin. Al leve impacto, explotan.

Dao
100

Cargas Explosivas

12

Piratas del Espacio: El caso Norby

Armas

Tipos de armas

Descripcin
El can de fotn es un arma equilibrada. Disparos rpidos y potencia media Tecnologa punta, disparo rpido y potencia media-alta

Dao
20

Can de fotones

Can Gauss Caones Alfa

30 50

Bombardero

13

Piratas del Espacio: El caso Norby

Clon
14

Piratas del Espacio: El caso Norby

Hunter
15

Piratas del Espacio: El caso Norby

Jugador
16

Piratas del Espacio: El caso Norby

Kamikaze
17

Piratas del Espacio: El caso Norby

18

Piratas del Espacio: El caso Norby AMS-4: Anlisis Mdulo Niveles ! El mdulo Niveles se encarga de proporcionar toda la funcionalidad relacionada con la carga y puesta en escena de niveles. El juego dispondr de 7 niveles. Cada nivel dene cmo es el universo, qu tipo de enemigos hay y su cantidad.

Niveles Nivel
1 2 3 4 5 6 7

Tiempo(min)
1 2 2 2 2 2 5

Enemigos
Kamikazes Clones Clones, Hunter Clones, Hunter, Kamikazes Hunters, Bombarderos Bombardero, Clones, Kamikaze Hunter, Bombarderos, Clon, Kamikaze

AMS-5: Anlisis Mdulo Fsicas ! El mdulo Fsicas se encarga de proporcionar toda la funcionalidad relacionada con las colisiones entre los entes del juego.

Colisiones que se deben controlar Jugador Jugador Misiles del jugador


! !

Misiles del jugador


! !

Misiles enemigos
" !

Enemigos
" "

19

Piratas del Espacio: El caso Norby

Colisiones que se deben controlar Jugador Misiles enemigos Enemigos


"

Misiles del jugador


!

Misiles enemigos
!

Enemigos
!

"

"

Efectos de colisiones Colisin


Jugador <-> Misil enemigo

Efecto
Se resta a la vida del jugador el valor del dao del arma que produjo el misil Se resta a la vida del enemigo el valor del dao del arma del jugador Se resta a la vida del jugador el valor del dao de colisin del enemigo. Se resta a la vida del enemigo el dao de colisin del jugador.

Misil del Jugador <-> Enemigo

Jugador <-> Enemigo

20

Piratas del Espacio: El caso Norby

AMS-6: Anlisis Mdulo Hud ! El mdulo HUD contiene toda la funcionalidad que permite representar por pantalla informacin grca para el usuario mientras est en los niveles.

Informacin que representar Indicador


Vidas

Explicacin
Cada vida te permite seguir jugando cuando eres destruido Representa el estado de la nave. La puntuacin que llevas conseguida Aparece cada vez que inicias un nuevo nivel

Vida Puntuacin Nivel

21

Piratas del Espacio: El caso Norby

La posicin de los elementos del HUD ser la siguiente:

22

Piratas del Espacio: El caso Norby

AMS-7: Anlisis Mdulo IA ! El mdulo IA, o de Inteligencia Articial, proporciona al juego una variabilidad y una inteligencia a las naves, de tal forma que nadie pueda predecir su movimiento. ! ! Cada nave tendr un movimiento particular:

IA de las naves Nave


Kamikaze Clon

Comportamiento
Movimiento aleatorio vertical y horizontal. Siguen una trayectoria rectilnea y disparan continuamente. Se mueve vertical y horizontalmente de manera que tenga a tiro al jugador Movimiento lento y rectilneo.

Hunter

Bombardero

AMS-8: Anlisis Mdulo Efectos grcos ! El mdulo de efectos grcos se encarga de aadir efectos que muestren un escenario ms atractivo. Las tecnologas que vamos a utilizar son: Motion Blur: Los objetos renderizados en pantalla muestran una estela al moverse. SkyBox: Los espacios exteriores contienen elementos a una distancia innita. En nuestro caso, constelaciones en la lejana.

23

Piratas del Espacio: El caso Norby

AMS-9: Anlisis Mdulo Sonido ! El mdulo sonido deber encargarse de la tarea de introducir efectos sonoros y msica. Msica Men Partida Crditos Game Over Efectos sonoros Disparo Explosin Motores

AMS-10: Anlisis Mdulo DB ! El mdulo de la base de datos proporciona al juego la posibilidad de tener un registro sobre los jugadores y la puntuacin nal de las partidas. ! Las interacciones con la base de datos se centrarn en las funciones de: Guardar nickname, puntuacin. Consultar lista de puntuacion-nickname

24

Piratas del Espacio: El caso Norby

A M S - 11 : A n l i s i s M d u l o M e n

Diagramas de casos de uso

25

Piratas del Espacio: El caso Norby

DC1-1 Desarrollo caso de uso del Subsistema Men ! Nombre: Men. Precondicin: El programa deber ser inicializado.
26

Piratas del Espacio: El caso Norby Postcondicin: Una ventana llamada MENU aparecer en pantalla. 1- Aparece una ventana en pantalla. 2- Se dibujan los botones. 3- Se dibuja el fondo. Flujo Alternativo: 1- Si no se dibujase algo correctamente, aparecer su color por defecto.

DC1-2 Desarrollo de caso de uso Salir

Ver Controles tiene una relacin de <include> en el Caso de Uso de Men. Nombre: Salir. Precondicin: La ventana MENU deber estar en pantalla. Postcondicin: Flujo Normal: - El usuario pulsa el botn SALIR. - Se cierra la ventana MENU. - El sistema termina. Flujo Alternativo:

27

Piratas del Espacio: El caso Norby D C 1 - 3 D e s a r r o l l o d e c a s o d e u s o Ve r C o n t r o l e s

El mdulo Controles aporta la funcionalidad que posibilita al usuario interactuar con el sistema, por medio del teclado y el ratn. El ratn se utiliza mientras el usuario est en el men del videojuego. El teclado se utiliza cuando el usuario est jugando un nivel para controlar a la nave. Ver Controles tiene una relacin de <include> en el Caso de Uso de Men.

Nombre: Ver Controles. Precondicin: La ventana MENU deber estar en pantalla. Postcondicin: Se mostrar una ventana en la que se muestren los controles. Flujo Normal: 1.- El usuario pulsa el botn VER CONTROLES. 2.- Se cierra la ventana MENU. 3.- Aparece la ventana VER CONTROLES con los controles necesarios para jugar al juego. Flujo Alternativo:

28

Piratas del Espacio: El caso Norby

D C 1 - 4 D e s a r r o l l o d e c a s o d e u s o Ve r P u n t u a c i o n e s

Puntuaciones tiene una relacin de <include> en el Caso de Uso de Men. Nombre: Ver Puntuaciones. Precondicin: La ventana MENU deber estar en pantalla. Postcondicin: Se mostrar una ventana en la que se muestren las puntuaciones. Flujo Normal: 1.- El usuario pulsa el botn VER PUNTUACIONES. 2.- Se cierra la ventana MENU. 3.- Aparece la ventana VER PUNTUACIONES con las puntuaciones y los nicknames de los jugadores que hayan jugado anteriormente. Flujo Alternativo:

29

Piratas del Espacio: El caso Norby DC1-5 Desarrollo de caso de uso Cargar Sonido

Cargar Sonido tiene una relacin de <include> en el Caso de Uso de Men. Nombre: Cargar Sonido. Precondicin: La ventana MENU deber estar en pantalla. Postcondicin: Flujo Normal: 1- Se reproduce por los altavoces la cancin oficial del juego. 2- Si termina la cancin se volver a repetir. 3- La cancin terminar cuando se pulse el botn NUEVA PARTIDA o SALIR.

Flujo Alternativo: D C 2 - 1 D e s a r r o l l o d e c a s o d e u s o A t r s ( Ve r p u n t u a c i o n e s )

30

Piratas del Espacio: El caso Norby

Atrs tiene una relacin de <include> en el Caso de Uso Ver Puntuacin. Nombre: Atrs. Precondicin: El usuario deber haber pulsado el botn de VER PUNTUACIONES. Postcondicin: Flujo Normal: - El usuario pulsa el boton ATRAS. - Se cierra la ventana VER PUNTUACIONES. - Se abre la ventana MENU.

31

Piratas del Espacio: El caso Norby Flujo Alternativo: D C 2 - 2 D e s a r r o l l o d e c a s o d e u s o A t r s ( Ve r c o n t r o l e s )

Atrs tiene una relacin de <include> en el Caso de Uso de Ver Controles . Nombre: Atrs. Precondicin: El usuario deber haber pulsado el botn de VER CONTROLES.

32

Piratas del Espacio: El caso Norby Postcondicin: Flujo Normal: - El usuario pulsa el boton ATRAS. - Se cierra la ventana VER CONTROLES - Se abre la ventana MENU. Flujo Alternativo:

DC1-1 Desarrollo caso de uso del Subsistema Nueva Partida ! Nombre: Nueva Partida. Precondicin: La ventana MENU deber estar en pantalla. Postcondicin: La partida habr comenzado.

33

Piratas del Espacio: El caso Norby 1- Se reproduce un vdeo dentro del juego en el que se muestre la introduccin a la historia del juego. 2- El primer nivel empieza. 3- Se crea la nave principal. 4- Se empiezan a generar las naves conforme a sus probabilidades de aparicin en el grafo de escena. 5- Cuando el nivel termina debido a que su duracin ha llegado a su lmite, se carga el siguiente el nivel, excepto en caso de que al final del nivel tenga que reproducirse un vdeo. 6- Se vuelven a crear las naves conforme a sus probabilidades de aparicin. 7- Se repiten las operaciones anteriores hasta finalizar todos los niveles 8- Al trmino de los niveles 2, 4, 5 y 7 se reproducirn los vdeos Llegada a la base, Enfrentamientos con la polica, Llegada al planeta principal, Ending. 9- Al trmino de la partida aparecer una ventana para que el usuario pueda introducir su nickname y ste se guarde en la base de datos junto a su puntuacin. Flujo Alternativo:

34

Piratas del Espacio: El caso Norby DC1-2 Desarrollo de caso de uso Controlar la Nave

Controlar la Nave tiene una relacin de <include> en el Caso de Uso de Nueva Partida. Nombre: Controlar la nave. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: La nave habr cambiado su posicin.

35

Piratas del Espacio: El caso Norby Flujo Normal: 1. El usuario pulsa las teclas adecuadas. 2. La nave cambia su posicin segn la/s tecla/s pulsada. 3. La nave seguir cambiando su posicin hasta que la/s tecla/s deja/n de ser pulsada/s. Flujo Alternativo: - El usuario pulsa una tecla no reconocida por el sistema. - El sistema ignora esa pulsacin de tecla.

DC1-3 Desarrollo casos de uso Gestin de elementos del HUD

Gestin de elementos del HUD tiene una relacin de <include> en el Caso de Uso de Nueva Partida. Nombre: Gestin de elementos del HUD. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: Flujo Normal: 1. La informacin se representa en la pantalla. 2. La vida y las vidas irn en la parte superior izquierda. 3. La puntuacin actual se situar en la parte superior derecha. Flujo Alternativo:

36

Piratas del Espacio: El caso Norby DC1-4 Desarrollo de caso de uso Matar

Matar tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Matar. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada.
37

Piratas del Espacio: El caso Norby Postcondicin: Habr una nave enemiga menos. Flujo Normal: - La nave enemiga explota. - Se guardar en una variable la puntuacin para al final del juego guardarla en la base de datos. Flujo Alternativo:

DC1-5 Desarrollo de caso de uso Morir

38

Piratas del Espacio: El caso Norby Morir tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Morir. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: Habr una nave enemiga menos. Flujo Normal: - La nave enemiga explota. - Se guardar en una variable la puntuacin para al final del juego guardarla en la base de datos. Flujo Alternativo:

DC1-6 Desarrollo de caso de Salir

39

Piratas del Espacio: El caso Norby

Salir HUD tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Salir. Precondicin: -Se ha creado una nueva partida. - El sistema ir al caso de uso GUARDAR PUNTUACIN. Postcondicin:

40

Piratas del Espacio: El caso Norby Flujo Normal: - El usuario podr pulsar la tecla ESCAPE. - Se pide un nickname con una ventana. - La puntuacin actual se guarda en la base de datos junto al nickname introducido. Flujo Alternativo:

41

Piratas del Espacio: El caso Norby DC1-7 Desarrollo de caso de uso Pausa

Pausa tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Pausa Precondicin: Se ha creado una nueva partida. Postcondicin: El sistema quedar pausado.

42

Piratas del Espacio: El caso Norby Flujo Normal: - El usuario podr pulsar la tecla P. - El sistema quedar pausado. Flujo Alternativo: - En caso de que el sistema est pausado. - El sistema se restablecer y dejar de estar pausado.

43

Piratas del Espacio: El caso Norby DC1-8 Desarrollo de caso de uso Ganar Partida

Ganar Partida tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Ganar Partida. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada.
44

Piratas del Espacio: El caso Norby Postcondicin: El sistema ir al caso de uso GUARDAR PUNTUACIN. Flujo Normal: 1- Se comprobar que el usuario ha terminado todos los niveles. 2- Se reproducir el video final. Flujo Alternativo: - Si no encuentra el video para reproducirlo, ignora esa parte y se la salta.

DC1-9 Desarrollo de caso de uso Guardar Puntuacin

45

Piratas del Espacio: El caso Norby Guardar Puntuacin tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Guardar Puntuacin. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: El sistema finalizar. Flujo Normal: 1- Mediante un cuadro de dilogo se le pedir al usuario que introduzca un nickname. 2- El sistema introducir en la base de datos ese nickname junto a su puntuacin. Flujo Alternativo:

DC1-10 Desarrollo de caso de uso Cargar Nivel Cargar Nivel tiene una relacin de <include> en el Caso de Uso de Nueva Partida.

Nombre: Cargar Nivel. Precondicin: Habr comenzado una nueva partida. Postcondicin: Un nivel quedar cargado y listo para jugarlo. Flujo Normal: - Se crear la nave principal. - Se generar el Skybox. - Se cargar el sonido. - Se crearn el resto de las naves de acuerdo a cada nivel. - Se gestionar la IA de las naves enemigas. - Se gestionar la duracin del nivel. Flujo Alternativo 1: - La nave principal no se carga. - El juego se aborta. Flujo Alternativo 2: - Las naves enemigas no se generan. - El juego se aborta.
46

Piratas del Espacio: El caso Norby Flujo Alternativo 3: - La duracin del nivel es mayor de la estimada. - Se carga el siguiente nivel

D C 2 - 1 D e s a r r o l l o d e c a s o d e u s o Tr o m p o a l a d e r e c h a Trompo a la derecha tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

47

Piratas del Espacio: El caso Norby

Nombre: Trompo a la derecha Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin. Flujo Normal: - El usuario podr pulsar la tecla E. - La nave realizar un trompo en el sentido de las agujas del reloj por la pantalla.

48

Piratas del Espacio: El caso Norby Flujo Alternativo: - La nave llega a cualquiera de los lmites de la pantalla. - La nave se detiene. - La nave no vuelve a su estado inicial. D C 2 - 2 D e s a r r o l l o d e c a s o d e u s o Tr o m p o a l a i z q u i e r d a Trompo a la izquierda tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

Nombre: Trompo a la izquierda


49

Piratas del Espacio: El caso Norby Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin. Flujo Normal: - El usuario podr pulsar la tecla Q. - La nave realizar un trompo al contrario de las agujas del reloj por la pantalla. Flujo Alternativo: - La nave llega a cualquiera de los lmites de la pantalla. - La nave se detiene. - La nave no vuelve a su estado inicial.

DC2-3 Desarrollo de caso de uso Arriba Arriba tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

50

Piratas del Espacio: El caso Norby

Nombre: Arriba. Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin hacia arriba. Flujo Normal: - El usuario podr pulsar las teclas W o _ - La nave se mueve hacia arriba mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
51

Piratas del Espacio: El caso Norby Flujo Alternativo: - La nave llega al lmite superior de la pantalla. - La nave se detiene en su ascenso por la pantalla.

DC2-4 Desarrollo de caso de uso Izquierda Izquierda tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

52

Piratas del Espacio: El caso Norby

Nombre: Izquierda. Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin hacia la izquierda. Flujo Normal: - El usuario podr pulsar las teclas A o _ - La nave se mueve hacia la izquierda mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
53

Piratas del Espacio: El caso Norby Flujo Alternativo: - La nave llega al lmite izquierdo de la pantalla. - La nave se detiene en su movimiento lateral a la izquierda por la pantalla. DC2-5 Desarrollo de caso de uso Abajo Abajo tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

54

Piratas del Espacio: El caso Norby Nombre: Abajo. Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin hacia abajo. Flujo Normal: - El usuario podr pulsar las teclas S o _ - La nave se mueve hacia abajo mientras cualquiera de las dos teclas posibles sigan estando pulsadas. Flujo Alternativo: - La nave llega al lmite inferior de la pantalla. - La nave se detiene en su descenso por la pantalla. DC2-6 Desarrollo de caso de uso Derecha Derecha tiene una relacin de <extends> en el Caso de Uso de Controlar la Nave.

55

Piratas del Espacio: El caso Norby

Nombre: Derecha. Precondicin: Se ha creado una nueva partida. Postcondicin: La nave cambiar su posicin hacia la derecha. Flujo Normal: - El usuario podr pulsar las teclas D o _ - La nave se mueve hacia la derecha mientras cualquiera de las dos teclas posibles sigan estando pulsadas.
56

Piratas del Espacio: El caso Norby Flujo Alternativo: - La nave llega al lmite derecho de la pantalla. - La nave se detiene en su movimiento lateral a la derecha por la pantalla.

DC2-7 Desarrollo de caso de uso Disparar Disparar tiene una relacin de <extends> en el Caso de Uso de Matar.

57

Piratas del Espacio: El caso Norby

Nombre: Disparar. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: Habr un modelo en 3D con forma de misil en el grafo de escena.
58

Piratas del Espacio: El caso Norby Flujo Normal: - El usuario podr pulsar la tecla ESPACIO. - Se crea un objeto en 3D con forma de misil. - Ese misil ir actualizando su posicin en el eje de la Z a ms velocidad que la de la nave principal. Flujo Alternativo: - El usuario deja pulsada la tecla ESPACIO. - El sistema ignorar esa peticin hasta pasado un tiempo.

DC2-8 Desarrollo de caso de uso Colisionar con la nave enemiga Colisionar con la nave enemiga tiene una relacin de <extends> en el Caso de Uso de Matar.

59

Piratas del Espacio: El caso Norby

Nombre: Colisionar con la nave enemiga. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin:
60

Piratas del Espacio: El caso Norby Flujo Normal: - Se hace un recuento de daos por colisin. - La nave enemiga explota. - Se guardar en una variable la puntuacin para al final del juego guardarla en la base de datos. Flujo Alternativo: - La nave enemiga tiene ms vida que nuestro dao por colisin. - Las naves seguirn chocando hasta que alguna muera por colisin.

DC2-9 Desarrollo de caso de uso Ser disparado por el enemigo Ser Disparado tiene una relacin de <extends> en el Caso de Uso de Morir.

61

Piratas del Espacio: El caso Norby

Nombre: Ser disparado por el enemigo. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin: Flujo Normal: - La vida de la nave principal llega a cero. - La nave principal explota. - El juego termina. - Sale una ventana en la que introduces tu nickname y se guarda tu puntuacin en la base de datos.

62

Piratas del Espacio: El caso Norby Flujo Alternativo:

DC2-10 Desarrollo de caso de uso La nave colisiona con el enemigo La nave colisiona con el enemigo tiene una relacin de <extends> en el Caso de Uso de Morir.

63

Piratas del Espacio: El caso Norby

Nombre: La nave nave colisiona con enemigo. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin:
64

Piratas del Espacio: El caso Norby Flujo Normal: - La nave enemiga colisiona con la nave principal. - La vida de la nave principal llega a cero. - La nave principal explota. - El juego termina. - Sale una ventana en la que introduces tu nickname y se guarda tu puntuacin en la base de datos. Flujo Alternativo:

D C 2 - 11 D e s a r r o l l o d e c a s o d e u s o C a r g a r S o n i d o Cargar Sonido tiene una relacin de <include> en el Caso de Uso de Cargar Nivel.

Nombre: Cargar Sonido. Precondicin: - Se ha creado una nueva partida. Postcondicin: Flujo Normal: - Se gestionar cundo se necesita, dentro de la partida, reproducir un sonido. Flujo Alternativo:

DC2-12 Desarrollo de caso de uso Generar Skybox Skybox tiene una relacin de <include> en el Caso de Uso de Cargar Nivel.

65

Piratas del Espacio: El caso Norby

Nombre: Generar Skybox. Precondicin: - Se ha creado una nueva partida. Postcondicin: Flujo Normal: - Se crear la cara norte del cubo. - Se crear la cara sur del cubo. - Se crear la cara este del cubo. - Se crear la cara oeste del cubo. - Se crear la cara superior del cubo. - Se crear la cara inferior del cubo. - Todas las caras tendrn la misma imagen. Flujo Alternativo:

DC2-13 Desarrollo de caso de uso Gestin Nivel Gestin Nivel tiene una relacin de <include> en el Caso de Uso de Cargar Nivel.

Nombre: Gestin Nivel. Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal. - Se han empezado a crear las naves enemigas. Postcondicin: El nivel terminar.

66

Piratas del Espacio: El caso Norby Flujo Normal: - Se gestionar cada nivel. Flujo Alternativo:

DC2-14 Desarrollo de caso de uso Crear Naves Crear Naves tiene una relacin de <include> en el Caso de Uso de Cargar Nivel.

Nombre: Crear Naves. Precondicin: - Se ha creado una nueva partida. Postcondicin: Flujo Normal: - Se crear la nave precisa para cada momento del juego. Flujo Alternativo:

DC3-1 Desarrollo de caso de uso Msica de Nivel Musica de nivel tiene una relacin de <extends> en el Caso de Uso de Cargar Sonido.

67

Piratas del Espacio: El caso Norby

Nombre: Msica de nivel. Precondicin: - Se ha creado una nueva partida. Postcondicin: Flujo Normal: - Se reproducir una cancin diseada para los niveles. Flujo Alternativo:

68

Piratas del Espacio: El caso Norby DC3-2 Desarrollo de caso de uso Efectos Sonoros Efectos Sonoros tiene una relacin de <extends> en el Caso de Uso de Cargar Sonido.

Nombre: Efectos sonoros. Precondicin: - Se ha creado una nueva partida. - La nave ha sido creada. Postcondicin:

69

Piratas del Espacio: El caso Norby Flujo Normal: - Se reproducirn los efectos sonoros acorde a la situacin. - Si la nave dispara se reproducir un sonido de disparo. - Si alguna nave explota se reproducir un sonido de explosin. - Si se produce una colisin se reproducir un sonido de colisin. Flujo Alternativo:

DC3-3 Desarrollo de caso de uso Duracin Nivel Duracin Nivel tiene una relacin de <extends> en el Caso de Uso de Getin Nivel.

70

Piratas del Espacio: El caso Norby

Nombre: Duracin Nivel. Precondicin: - Se ha creado una nueva partida. Postcondicin: El nivel terminar.
71

Piratas del Espacio: El caso Norby Flujo Normal: - Se mira si el nivel ha llegado a su lmite de tiempo y termina. - Si el nivel an no ha terminado se actualiza el tiempo restante y se repite la operacin anterior. - Cuando el tiempo restante es cero, se pasa al siguiente nivel. Flujo Alternativo: - Si el tiempo restante es menor que cero, se pasa el siguiente nivel.

DC3-4 Desarrollo de caso de uso Gestin IA

Gestin IA tiene una relacin de <extends> en el Caso de Uso de Getin Nivel.

72

Piratas del Espacio: El caso Norby

Nombre: Gestin IA.

73

Piratas del Espacio: El caso Norby Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal. - Se han empezado a crear las naves enemigas. Postcondicin: Flujo Normal: - Para cada tipo de nave se gestionar su IA. Flujo Alternativo:

DC3-5 Desarrollo de caso de uso Crear Nave Principal Crear Nave Principal tiene una relacin de <extends> en el Caso de Uso de Crear Naves.

74

Piratas del Espacio: El caso Norby

Nombre: Crear Nave Principal. Precondicin: - Se ha creado una nueva partida. Postcondicin: Se habr creado la nave principal.
75

Piratas del Espacio: El caso Norby Flujo Normal: - Se crear la nave principal del jugador. - Se aadir al grafo de escena. Flujo Alternativo: - Si no se crea la nave principal se abortar el juego.

DC3-6 Desarrollo de caso de uso Crear Bombardero Crear Bombardero tiene una relacin de <extends> en el Caso de Uso de Crear Naves.

76

Piratas del Espacio: El caso Norby

Nombre: Crear Bombardero. Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal.
77

Piratas del Espacio: El caso Norby Postcondicin: Se habr creado un bombadero. Flujo Normal: - Se crear un Bombardero. - Se aadir al grafo de escena. Flujo Alternativo:

DC3-7 Desarrollo de caso de uso Crear Kamikaze Crear Kamikaze tiene una relacin de <extends> en el Caso de Uso de Crear Naves.

78

Piratas del Espacio: El caso Norby

Nombre: Crear Kamikaze. Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal.
79

Piratas del Espacio: El caso Norby Postcondicin: Se habr creado un Kamikaze. Flujo Normal: - Se crear un Kamikaze. - Se aadir al grafo de escena. Flujo Alternativo:

DC3-8 Desarrollo de caso de uso Crear Clon Crear Clon tiene una relacin de <extends> en el Caso de Uso de Crear Naves.

80

Piratas del Espacio: El caso Norby

Nombre: Crear Clon. Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal.
81

Piratas del Espacio: El caso Norby Postcondicin: Se habr creado un Clon. Flujo Normal: - Se crear un Clon. - Se aadir al grafo de escena. Flujo Alternativo:

DC3-9 Desarrollo de caso de uso Crear Hunter Crear Hunter tiene una relacin de <extends> en el Caso de Uso de Crear Naves.

82

Piratas del Espacio: El caso Norby

Nombre: Crear Hunter. Precondicin: - Se ha creado una nueva partida. - Se ha creado la nave principal. Postcondicin: Se habr creado un Hunter.
83

Piratas del Espacio: El caso Norby Flujo Normal: - Se crear un Hunter. - Se aadir al grafo de escena. Flujo Alternativo:

Priorizacin de casos de uso


! 1. Nueva Partida 1. Crear Nave Principal 2. Salir (en juego) 3. Controlar la Nave 4. Arriba 5. Abajo 6. Izquierda 7. Derecha 8. Trompo izquierda 9. Trompo derecha 10.Cargar Nivel 11. Generar SkyBox 12. Crear Naves 13. Crear Bombardero 14. Crear Kamikaze 15. Crear Hunter 16. Crear Cln 17. Gestin IA 18. Disparar 19. Colisionar con nave enemiga 20. Morir 21. Ser disparado 22. La Nave colisiona con enemigo 23. Pausa 24. Gestin elementos del HUD 25. Gestin del Nivel 26. Duracin Nivel 27. Ganar Partida 28. Guardar Puntuacin 29. Cargar Sonido 30. Msica de Nivel
84

Piratas del Espacio: El caso Norby 31. Efectos sonoros 2. Men 1. Salir 2. Ver puntuacin 3. Ver Controles 4. Atrs 5. Cargar Sonido

85

Piratas del Espacio: El caso Norby

Diagramas de secuencia

86

Piratas del Espacio: El caso Norby

Controlar la nave

87

Piratas del Espacio: El caso Norby

Flujo alternativo

88

Piratas del Espacio: El caso Norby

Crear nivel

89

Piratas del Espacio: El caso Norby

90

Piratas del Espacio: El caso Norby

Ganar Partida

91

Piratas del Espacio: El caso Norby Flujo alternativo

92

Piratas del Espacio: El caso Norby

Generar Skybox

93

Piratas del Espacio: El caso Norby

Guardar Puntacin

94

Piratas del Espacio: El caso Norby

Matar Enemigo

95

Piratas del Espacio: El caso Norby

Pausa

96

Piratas del Espacio: El caso Norby Pausa Flujo alternativo

97

Piratas del Espacio: El caso Norby

Salir

98

Piratas del Espacio: El caso Norby

Ver puntuaciones

99

Piratas del Espacio: El caso Norby

Diagrama de clases
Ver archivo Diagramas/Diagramas de clases

100

Piratas del Espacio: El caso Norby

Glosario

1. SimpleGame ! ! Es una clase que permite un rpido funcionamiento de un juego en Jmonkey, un prototipo con todas las funcionalidades bsicas.

2. DisplaySystem ! ! Provee una forma de conectarse con el sistema de ventanas. 3. BaseGame: Es una clase que tiene una serie de mtodos que se repiten en un bucle innito en este orden: a. initSystem(): En este mtodo se llaman y crean los hilos oportunos (en nuestro caso no realizaremos programacin multi-hilos). Tambin se inicializa Display System o se lanzar una excepcin. b. InitGame(): Se llama despues de que termine initSystem(). Aqu es donde el grafo de escena se carga y donde se inicializa el juego. ! c. Update(oat): Se llama con un argumento cuyo valor es -1.0F. Este valor no tiene sentido mientras la CPU y la tarjeta grca puedan trabajar sin problemas. ste mtodo se encarga de actualizar el programa. d. Render(oat): El argumento es lo mismo que en el mtodo Update(oat). ste mtodo se encarga de renderizar el grafo de escena.Thread.yield(): Si existe otro proceso, ste mtodo lo invoca.Si el juego no ha terminado se volvera al mtodo Update(oat). e. CleanUp(): Cuando el juego est acabando se llama a este mtodo. Aqu se implementa la limpieza. f. Quit(): ste mtodo se invoca cuando el juego est terminando y si no hay otro proceso pendiente se llama al mtodo exit() y se sale de la ejecucin. 4. Quaterniones: Son un subconjunto de nmeros hipercomplejos que sirven para rotar un objeto en el espacio 3D. Sus cuatro valores se miden en radianes. 5. Renderizar: Dibujar un objeto en la pantalla del juego.

101

Piratas del Espacio: El caso Norby 6. Grafo de escena: Es el grafo donde se irn aadiendo nodos. Ese grafo se renderizar en pantalla. 7. Main-game-loop: El bucle principal del juego consiste en actualizar tan rpido como sea posible el grafo de escena y hacer todos los clculos necesarios para su actualizacin. Es de vital importancia que el bucle sea rpido, consistente y continuo. El bucle principal del juego se divide en varias fases: a. Inicializacin: Esta fase tiene la funcin de inicializar los requisitos bsicos para el funcionamiento del programa. b. Actualizacin: Esta fase es muy importante ya que se utiliza para actualizar los valores necesarios para actuar frente a posibles cambios en el programa. Suele utilizar una variable tiempo. En esta fase se introducen los mtodos necesarios para el manejo de los controles, la cmara (en el caso de que se mueva durante el juego), nuevos objetos o cualquier otra actualizacin. c. Dibujo: En esta fase se renderizan todos los objetos o nodos del grafo de escena. d. Limpieza: Se eliminan los nodos necesarios del grafo de escena. Sin embargo, si se usa para nalizar el programa se utiliza para guardar los valores necesarios antes de cerrar el programa. 8. Bounding Box: Es un cubo con todos sus vrtices, el cual nos permite un nivel alto de velocidad en clculos y en el que se encapsulan algunos objetos. 9. Vector3f: es un vector de 3 coordenadas. 10. Camera: la cmara es una forma de dibujar en pantalla solamente los objetos que se precisan ver en un determinado momento. La cmara tiene una direccin, una posicin con respecto a la izquierda y otra posicin respecto a la altura. 11. ChaseCamera: es la funcionalidad de la cmara que permite que la cmara siga al jugador. 12.Frustum Culling: cuando usamos frustum culling conseguimos que los objetos no focalizados por la cmara no se tengan que tener renderizados y as los recursos no estarn tan sobrecargados. 13.InputSystem: Aqu estn implementados el ratn, el teclado o el joystick. 14.InputHandlers: Son los eventos que sirven como controles a la disposicin del jugador. 15.Texture: dene un tipo de dato en un objeto de JME. sta encapsulacin permite cargar la textura de una gura geomtrica o modelo 3D.

102

Piratas del Espacio: El caso Norby 16.TextureState: dene un RenderState que maneja un Texture para un Spatial. 17.RenderState: dene las cualidades de una gura geomtrica del grafo de escena. 18.Spatial: es la clase bsica de un objeto que se encuentra en un nodo del grafo. 19.SkyBox: es una tcnica que permite crear la ilusin de que el entorno 3D es innito. Para ello es necesario utilizar 6 imgenes que se colocan en las 6 caras de un cubo. ste cubo tiene una posicin relativa a la cmara de manera que la cmara siempre est dentro del cubo. 20.Zbu'erState: es una clase que permite que los objetos ms cercanos se rendericen por encima de los ms alejados, de forma que las partes de un objeto que se encuentren detrs de otro no se puedan ver. 21.RenderQueue: es una cola de objetos renderizados que contiene los objetos ordenados para ser renderizados en el siguiente orden: objetos opacos, la parte interior de los objetos traslcidos, la parte externa de los objetos traslcidos y objetos ortogonales. 22.SharedMesh: es muy til para renderizar varias instancias del mismo objeto. De esta forma podemos tener un slo objeto, pero renderizado tantas veces como se quiera. Es muy til ya que no es necesario repetir cdigo si tenemos que introducir varios objetos de las mismas caractersticas. 23.Third Person Handler: Son los controles manejados por el usuario en tercera persona. 24.Tipos de Shapes: a. Arrow b. Axis Rods c. Box d. Rounded Box e. Capsule f. Cone g. Cylinder h. Disk
103

Piratas del Espacio: El caso Norby i. Dodecahedron j. Dome k. Hexagon l. Icosahedron m.Octahedron n. Pyramid o. Quad p. Sphere q. Geosphere r. Teapot s. Torus

104

Potrebbero piacerti anche