Defensa Mayo 25 - MACC - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Grabación de defensa.
Pues, ¿qué tal? ¿Cómo estás? Mira, bienvenido a la presentación y defensa de tu proyecto. Bueno, estamos en la hora pactada y vamos a empezar con tu presentación. Como ya fuiste informado, voy a ir al grano, tu presentación se espera que ocupe un máximo de 15 minutos y tras ello habrá una ronda de preguntas por mi parte, que otros profesores también me han dejado alguna, de alrededor de 10 minutos.
00:00:00
en el tipo de respuestas, pero bueno, alrededor
00:00:24
de ese periodo va a ser
00:00:26
entonces, cuando
00:00:29
tú me digas, que no tiene que ser ahora mismo
00:00:30
si quieres compárteme pantalla, etcétera
00:00:33
prepárate, y cuando me digas
00:00:35
es cuando me apunto para que empiecen a correr
00:00:37
esos 15 minutos, ¿de acuerdo?
00:00:39
así que nada, mucho ánimo
00:00:41
con ello
00:00:43
gracias, pues déjame cerrar
00:00:43
unas cosillas que
00:00:47
me van a pesar de más
00:00:48
para tenerlo todo limpio
00:00:50
vale
00:00:52
Pues a punto
00:01:20
que vas a empezar ahí
00:01:24
14
00:01:26
Perfecto
00:01:27
Todo tuyo
00:01:30
Voy a ir compartiendo
00:01:31
pantalla
00:01:34
Ahí lo ves, ¿no?
00:01:35
Sí, veo tu pantalla
00:01:47
Pues perfecto
00:01:50
¿Necesitarías ver la parte del proyecto
00:02:09
o la de la memoria?
00:02:17
Vale, perfecto
00:02:24
Pues, me lo, vale, listo. Pues empezamos por esto. Vale, pues buenas tardes, mi nombre es Michael Andrés, esta es la presentación de mi proyecto de videojuego, es un videojuego 3D, shooter, presento, lo siento, esperame un segundo, vale, ya está, lo siento.
00:02:25
Vale, es un videojuego en 3D, es un shooter presentado prácticamente, inició en la unidad de Dane como mecánicas de movimiento de jugador en 3D, de coaliciones y para este proyecto lo que he decidido era presentar un sistema de guardado que pudiera almacenar todos los datos importantes para el funcionamiento del juego tal y como lo tengo pensado.
00:03:07
Es un juego que está enfocado, está inspirado en juegos como Star Fox de Nintendo 64
00:03:37
y como Space Impact de un juego móvil de Nokia.
00:03:46
Entonces, el concepto de estos dos juegos es la desartilidad y la dinámica de acción del juego de Star Fox
00:03:51
y en el modo historia está enfocada la parte del juego de Space Impact de Nokia.
00:03:58
¿por qué decido
00:04:07
presentar un sistema
00:04:10
de guardado como proyecto en este
00:04:12
juego? porque
00:04:14
considero que un sistema de guardado
00:04:15
es
00:04:18
vamos, importantísimo
00:04:19
a la hora de mantener
00:04:22
a un jugador en un juego
00:04:23
porque sin este sistema
00:04:25
lo que puede pasar es que el jugador
00:04:28
pues se aburra fácilmente
00:04:30
o deja el juego de lado, al tener un sistema
00:04:31
de guardado y un sistema
00:04:34
de control de puntajes
00:04:35
lo que haces en el jugador
00:04:37
es que tenga esa necesidad
00:04:39
de querer superar sus récords
00:04:41
entonces vuelva
00:04:43
al juego constantemente
00:04:44
aparte de la necesidad
00:04:47
para este juego, considero también
00:04:51
que prácticamente todos los juegos
00:04:53
necesitan un mínimo de sistema
00:04:55
guardado, ya sea si sea guardar
00:04:57
el nombre o guardar
00:04:59
lo mínimo que sea, entonces
00:05:00
si esto lo trasladamos al sector
00:05:02
profesional por decirlo así
00:05:04
es una necesidad como
00:05:07
básica diría yo
00:05:09
que deberíamos tener los desarrolladores
00:05:11
a la hora de enfrentar un juego
00:05:13
y también de perderle miedo
00:05:14
a la parte de la programación
00:05:17
y del
00:05:19
backend del juego para poder
00:05:20
implementar ciertas cosas y escalar
00:05:23
el juego en su gran mayoría
00:05:25
en principio
00:05:27
el juego
00:05:34
ya tenía las mecánicas desarrolladas
00:05:36
ciertas mecánicas desarrolladas
00:05:38
entonces
00:05:41
dime
00:05:42
por si acaso, no tienes
00:05:45
powerpoint ni presentación de ningún tipo
00:05:48
o sea, tengo
00:05:50
con la memoria, vale, si era por si acaso
00:05:52
no la estaba viendo y la tuvieras, vale
00:05:54
pues nada, perdona
00:05:56
lo que pasa es que luego pasaré al
00:05:57
al juego, claro, a mostrarlo
00:06:00
vale, no te interrumpo más
00:06:03
perdona, si era por si acaso
00:06:04
no te preocupes
00:06:05
Vale, entonces, la finalidad del juego, como decía antes, era presentar el sistema de guardado, en el cual dentro de Unity hay como ciertos elementos que tenemos ya preestablecidos para poder implementarlo.
00:06:07
Una de ellas son las prefabs, otra es el archivo JSON, Game Manager podría decirse de alguna forma que almacena ciertas cosas. Al final, este juego se desarrolló con un archivo JSON, ya que en principio, pues, la forma de almacenar los datos de forma binaria lo hace como más fácil y más escalable.
00:06:25
quiero mostrarles por aquí
00:06:47
referencias visuales
00:06:50
al juego de
00:06:52
Space Impact
00:06:54
donde pueden ver
00:06:56
a comparación con mi juego
00:06:59
es como
00:07:01
muy parecida a la dinámica de juego
00:07:02
y la acción
00:07:05
y ya lo que es el tema del Space Impact
00:07:05
del juego del celular
00:07:09
es más como la parte de la historia
00:07:10
quiero mostrarles
00:07:13
por aquí
00:07:16
Vale. Estás viendo la pantalla, ¿cierto? Vale, perfecto. Pues el juego en principio ha desarrollado muchísimos, lo siento, el juego en principio tiene muchísimas funciones ya albergadas.
00:07:16
Como pueden ver, tenemos sistema del interface del jugador donde se puede interactuar perfectamente. Es un ejecutable en toda regla donde funcionan todas las secciones del juego.
00:07:50
vale, este sería el sistema
00:08:13
de guardado
00:08:17
el sistema de registros que
00:08:18
guarda el jugador y les voy a hacer
00:08:21
una pequeña muestra de como sería
00:08:23
el juego, como pueden
00:08:25
ver el juego tiene
00:08:27
implementado
00:08:28
el text mesh
00:08:30
tiene implementado también el input system
00:08:32
tiene, ya ven como la pequeña
00:08:35
introducción del juego como también tiene
00:08:37
desarrollado la parte de cinematic
00:08:39
y de cinemáticas
00:08:41
con cinemachine
00:08:43
Que están desarrolladas, funcionan todas sus colisiones y sus triggers, como pueden ver. El juego es completamente funcional. Entonces, hasta esta parte del juego, el juego siempre se reiniciaba y no guardaba el apartado del guardado.
00:08:44
guardado entonces claro esto cuando tú sales del juego y vuelves a empezar es como empezar
00:09:05
de nuevo es como no tienes un sistema donde se pueda reconocer lo que has hecho por decirlo así
00:09:12
entonces el juego ya prácticamente lo que hace es introducirte al nivel que está completo está
00:09:18
vamos se puede mejorar se puede escalar pero el nivel está completamente jugable y está
00:09:26
completamente terminado como pueden ver todos los botones funcionan los de pausa los d los de
00:09:31
golpear y básicamente este sería el funcionamiento del juego voy a dejarlo ahí mientras les comento
00:09:40
una cosa hasta que llegue al asistente a la parte del jefe final ya que claro no tengo atajos en el
00:09:52
juego para llegar a esa parte y poderles mostrar bien la parte del guardado pero quería decirles
00:09:58
todo lo que tiene el juego en sí el juego tiene desarrolladas partículas todo está hecho por mí
00:10:05
y la idea principal del juego es hacer como una historia de 10 niveles acumulables donde el
00:10:12
objetivo principal es el puntaje ya son 10 niveles en los que tienes que pasar y el objetivo
00:10:22
principal es simplemente el que tenga mejor puntaje como se obtiene el puntaje se obtiene
00:10:28
destruyendo los objetivos y prácticamente cogiendo monedas que eso es para un apartado de tienda que
00:10:33
se va a hacer después pero prácticamente este es el juego en sí estamos ya llegando a la parte
00:10:41
final del jefe para que vean el proceso de cómo se almacenan los datos pueden ver el todo momento
00:10:48
el puntaje aquí 115 entonces en este momento cuando en un segundo cuando destruyes al jefe
00:10:54
como pueden ver en la animación funciona perfectamente del nivel las bfx que se han
00:11:06
desarrollado para el juego también funcionan y esta es la parte ya de como tal en lo que me
00:11:14
enfoque en el juego este apartado en este botón de volver tenemos la parte del sistema de carga
00:11:23
y de y de y de salvar el juego donde al darle podemos darnos cuenta que automáticamente se ha
00:11:33
guardado mi puntaje aquí el nombre también se guarda pero esta vez no lo he puesto vale
00:11:42
terminado esto quiero explicarles cómo funciona el sistema de el sistema de de guardado este es
00:11:48
el script principal del sistema de guardado lo que podemos ver es que lo que hicimos fue un
00:12:00
sistema de de jason que guarda los datos de una forma binaria me sacó un segundo y aquí está el
00:12:04
otro vale entonces el sistema como tal está albergado en estos dos scripts que es el sistema
00:12:43
de save data que es aquí es donde vamos a acumular y a dejar todos los datos que queramos guardar del
00:12:54
juego ejemplo si quiero poner que la nave porque el juego más adelante va a tener un sistema de
00:13:00
store donde puedes cambiar las naves
00:13:09
entonces si yo quiero guardar
00:13:12
cualquier dato del
00:13:14
juego, ya sea nombre
00:13:16
o
00:13:18
nave
00:13:20
tipo de nave
00:13:22
o lo que sea, lo guardamos
00:13:22
en este sistema Strut
00:13:25
que esto va a ser siempre
00:13:27
un llamado a este
00:13:30
Safe Game Manager
00:13:32
que es el que se encarga de abrir
00:13:33
una carpeta nueva en nuestro ordenador
00:13:36
Se guarda de forma local en todos los ordenadores. Entonces, este script lo que hace es crear una carpeta por medio de este sistema donde la crea y de ahí mismo también accede a los datos. ¿Y cuáles datos? Estos, que son los que nosotros podemos establecer en cualquier momento del juego, escalable o no. En este momento, el juego simplemente almacena las temas de puntuación y de usuario de nombre.
00:13:38
Y para terminar sería este. Y este fue el script que fue lo que más me tomó tiempo, por decirlo así. Es el script. Este no es. Ahora lo busco. Un segundo. Bueno, en fin, el script que más me costó.
00:14:05
Bueno, lo tengo aquí. Un segundo. Aquí. Vale, perfecto. Pues el script que más me costó desarrollar fue ya la implementación del sistema automático de guardado. ¿Qué quiere decir? El sistema nada más te muestra el score, el juego nada más te muestra el score que has hecho y le das volver, continuar o siguiente nivel, se te guardan los datos automáticamente.
00:14:46
Vale, para que se guardaran los datos automáticamente y de una forma correcta, que es correcta, quiere decir que si ha sido mejor puntaje que el segundo puesto, pero peor que el primer puesto, pues que el segundo y se corran todos los puntajes automáticamente, todos los puntajes con todos los nombres.
00:15:20
Entonces, para eso decidí simplemente hacer un script en el que hago referencia al SaveData, que fue el que les mostré a este SaveData, hacer referencia al script y acá van a estar todos los datos que queremos cargar y guardar.
00:15:39
Entonces, en el momento que le damos a volver o a continuar el nivel, el script va a volver a estos datos que tenemos guardados en el JSON y los va a sobreescribir constantemente. Entonces, es un sistema que ha quedado perfectamente bien, como pueden ver en el ejecutable del juego y que podemos seguir creciendo como tal el juego.
00:15:57
¿Qué otra cosa les quería mostrar? Vale, vale. Como pueden ver, aparte de lo del sistema de guardado, el juego está desarrollado por mi persona, entonces simplemente hay dos assets que cogí aparte, que es el de la nave y el del jefe final,
00:16:25
Y de resto, con este juego, aparte del sistema de guardado, la implementación, superé bastantes retos, como han sido las partes de programación, que era uno de mis puntos débiles, en cuanto a sistema de corrutinas, sistemas de coaliciones, de detección de riggers, tiene partículas BFX, como pueden ver, ha sido una experimentación prácticamente en todos los sentidos,
00:16:53
ya que toco desde
00:17:20
Input System
00:17:22
Cinematic Machine
00:17:23
del Cinemachine
00:17:29
las VFX
00:17:32
y todo
00:17:33
vamos
00:17:35
que todo lo que está en el juego
00:17:38
se hizo desde cero
00:17:43
y
00:17:45
bueno y poco más
00:17:48
y
00:17:51
vale pues ya estaría
00:17:52
Pues, presentación hecha, dame un segundo
00:18:00
que miro un par de cosillas
00:18:04
y empiezo a plantear
00:18:06
Dejo de compartir, ¿vale?
00:18:20
Vale, bueno, ahí
00:18:21
hay una cosa
00:18:23
que hemos visto, que es
00:18:24
que en tu memoria aparecen
00:18:27
que puede parecer menor, pero no lo es
00:18:29
en absoluto, que es que en tu memoria
00:18:31
aparecen imágenes de código, por ejemplo
00:18:33
para ver cómo es ese código
00:18:35
que están deformadas y no son legibles
00:18:38
Ah, ok, vale
00:18:40
y no unas sino varias
00:18:42
en plan que están deformadas
00:18:43
que no se puede ver
00:18:45
entonces eso
00:18:47
eso es bastante
00:18:49
importante dado que es al final
00:18:52
la documentación que nos estás aportando
00:18:53
del proyecto
00:18:56
así que es algo que tendrías que cuidar más
00:18:56
¿vale?
00:19:00
por otro lado
00:19:02
entiendo
00:19:03
en la memoria también cuando hablas de
00:19:04
de algunas de las
00:19:08
de las fuentes
00:19:10
aparece, por ejemplo, Unity Technologies
00:19:11
ND. ¿Qué significa ese ND?
00:19:14
Cuando hablas de fuentes.
00:19:20
El ND, no sé, se me habrá colado.
00:19:21
No, no lo sé.
00:19:24
Cuando quiero citar al Unity Technology
00:19:25
ND, creo que
00:19:28
en ese apartado iba a citar simplemente la
00:19:29
documentación de Unity, oficial.
00:19:31
Por ejemplo,
00:19:35
en el apartado 12 de tu memoria,
00:19:36
referencias bibliográficas y webgráficas,
00:19:37
cuando hablas de Unity Technologies,
00:19:39
Microsoft Docs,
00:19:42
Wikipedia, Nintendo, Fandom
00:19:44
pones ND y no sé a qué se refiere
00:19:46
no sé si es no disponible
00:19:48
algo
00:19:50
no, pues esto no sé
00:19:51
muy bien en qué fue
00:19:54
esto no debería ir ahí, lo siento
00:19:56
vale, nada, pues claro
00:19:58
no sabemos a qué se refería
00:20:00
simplemente por
00:20:02
aquí simplemente quería hacer como
00:20:03
un apartado
00:20:05
a Unity como tal
00:20:08
pero a la API, a la documentación de Unity
00:20:10
vale
00:20:12
Pero claro, es verdad que está aquí en...
00:20:13
Vale, entonces, tu sistema de guardado se basa principalmente, por lo que entiendo, en que se crea ese archivo JSON a través de una gestión mediante variables estáticas, ¿no? Es decir, se empieza en local, se va trabajando en local y luego se vuelca a ese JSON, ¿verdad?
00:20:17
eso es si se trabajan local y en el momento que se aplica el guardado o sea que sea el momento de
00:20:37
volver al juego o de continuar en ese momento hace una sobre sobre escribe el archivo jason
00:20:44
con los datos nuevos entonces lo explico el en todo el momento el nombre del jugador y el puntaje
00:20:51
están guardados dentro de una variable de game manager una variable in para la puntuación y una
00:21:00
variable string para el nombre y en el momento que se hace el guardado esos datos que están en
00:21:09
el game manager sobre escribiéndose todo el tiempo porque el puntaje va aumentando pues
00:21:19
pasan automáticamente a compararse con el safe data que son los datos que tenemos guardados
00:21:23
Y ya luego el archivo JSON lo que hace
00:21:31
es sobreescribir esa nueva información.
00:21:33
Vale.
00:21:37
Yo hay una cosa que es verdad,
00:21:39
y corrígeme, sino que cuando matas al boss final,
00:21:41
sale esa pantalla, bueno,
00:21:45
que te hace el resumen del resultado, etcétera,
00:21:47
hasta que no das al botón de volver,
00:21:49
no es cuando se realiza.
00:21:52
Yo creo que sería mejor, digo, como apunte,
00:21:54
que según matas al boss,
00:21:56
y si no dime el por qué,
00:21:59
y pasas a esa pantalla
00:22:00
ya se hiciera el guardado en el cambio de escena
00:22:02
¿por qué?
00:22:05
cuando hubiera ese cargado
00:22:06
porque si no me equivoco también
00:22:07
en algún momento aparece el botón de reiniciar
00:22:11
aparte del de volver
00:22:13
entonces, ¿qué ganas
00:22:14
esperando a darle al volver
00:22:16
para que se guarde y no generar ya ese guardado
00:22:18
directamente cuando se muestra al jugador
00:22:21
porque ya existe
00:22:23
no sé por qué has optado por esos pasos
00:22:24
lo explico
00:22:27
es porque
00:22:28
claro es que este juego no es muy conocido
00:22:29
el juego del
00:22:32
Space Impact del móvil
00:22:33
era un juego muy difícil, era un juego
00:22:35
en el que para pasar los 10 niveles
00:22:38
completos te daban solo 3 vidas
00:22:40
¿no?
00:22:42
entonces ¿por qué no se guarda
00:22:43
automáticamente? porque
00:22:46
lo que yo quiero generar con el juego
00:22:47
en momento de ver el score es que la persona
00:22:49
se plantee si volver a
00:22:52
jugar el juego o guardar ese resultado
00:22:54
vale
00:22:56
porque este, esto claro
00:22:58
esto no está explicado, pero
00:23:00
el juego ahora como está
00:23:01
pues da la sensación en que puedes
00:23:04
salirte y volver a entrar
00:23:06
cada que quieras
00:23:07
pero la idea principal del juego
00:23:09
es que una vez entres al primer nivel
00:23:12
hasta que te mates
00:23:14
o decidas volver, no se guarden los datos
00:23:17
vale, sí, claro
00:23:20
pero estoy hablando de cuando se acaba ya el nivel
00:23:23
y de momento, con lo que hay ahora
00:23:25
planteado el juego, es decir, yo
00:23:27
me parece, entiendo lo que me acabas
00:23:29
de decir, pero entiendo que es un poco extraño
00:23:31
que alguien diga, desecho esta
00:23:33
puntuación y vuelvo a intentarlo, es decir
00:23:35
no se gana nada, porque si tú has quedado
00:23:37
muy mal o tienes una puntuación muy baja
00:23:39
pues nunca, aunque se haga
00:23:41
el guardado, no entra en el ranking
00:23:43
y
00:23:45
lo que sí puede pasar es que te lo pases y sin
00:23:46
querer te salgas de algún modo o reinicies
00:23:49
o hagas otras cosas
00:23:51
y no se te guarde esa puntuación
00:23:53
no sé, creo que no hay
00:23:55
tantos beneficios, pero bueno, que sí, es simplemente
00:23:57
una pregunta del flujo
00:23:59
de la gestión de niveles
00:24:01
vale, pero igual quiero
00:24:02
que se sepa que el hecho
00:24:05
o sea, también
00:24:07
el sistema, todo lo que
00:24:08
aplica el sistema de guardado
00:24:11
o sea, la función, está guardado
00:24:13
en un void, está en
00:24:15
una función aparte, entonces
00:24:17
es verdad que es fácil
00:24:19
trasladarla a cualquier momento
00:24:21
del juego, o sea, que no
00:24:23
va a alterar el juego por
00:24:25
hacerlo, nada más terminar el nivel
00:24:27
o terminarlo porque al estar guardado
00:24:29
en un apartado como un boy, que lo puedo
00:24:31
llamar en cualquier momento
00:24:33
puedo adelantar o atrasar
00:24:34
ese guardado en función de
00:24:37
lo que quiera tener o como vaya
00:24:39
avanzando el juego
00:24:41
Vale, aparte de eso y ya
00:24:42
a lo mejor por ir acabando, bueno
00:24:46
vea algunos bugs
00:24:48
en el sentido de cosas que
00:24:50
entiendo y además lo pones como objetivo
00:24:52
opcional, pues finalizar
00:24:55
el nivel o mejorarlo
00:24:56
simplemente te los digo
00:24:58
para que también seas consciente de cosas
00:25:00
que probándolo hemos visto
00:25:02
y bueno
00:25:03
incluso si me
00:25:07
dices un poco claro la dificultad
00:25:08
de esto, aunque todavía no hayas sabido cómo resolverlo
00:25:10
me es útil que digas
00:25:12
vale, por ejemplo
00:25:14
los disparos, si vas dando
00:25:16
juego con el ratón yo, vas dando
00:25:18
al botón de disparar
00:25:20
según, si por ejemplo das
00:25:22
tres disparos muy seguidos o cuatro y luego
00:25:24
ya mantienes pulsado el botón
00:25:26
se hacen ráfagas muy rápidas de disparos
00:25:28
sí
00:25:30
claro, no sé si es a propósito
00:25:31
esas ráfagas automáticas
00:25:34
porque cambia mucho
00:25:35
medio a propósito, te explico
00:25:37
al principio el juego
00:25:40
disparaba en cuanto
00:25:41
clicabas el botón
00:25:44
y entonces para disparar tres veces
00:25:45
tenías que clicar tres veces
00:25:48
yo no quería que fuera así
00:25:50
yo quería que fueran ráfagas
00:25:52
de un ratio más o menos de 0.5
00:25:53
segundos donde saliera un disparo
00:25:56
cada nada, entonces para
00:25:58
eso los metí, o sea, metí esa
00:26:00
función dentro de una corrutina para que
00:26:02
engañara
00:26:04
el juego en principio, entonces
00:26:06
eso me trajo un problema, que es lo que tú
00:26:08
comentas ahora, que es que cuando
00:26:10
oprimes tres veces
00:26:12
seguidas el
00:26:14
ratón y lo dejas presionado
00:26:15
es como si se multiplicara
00:26:18
entonces empiezan a salir
00:26:20
eso es algo que está para solucionar
00:26:22
porque el sistema de disparo no está pulido al 100%, la idea principal es que simplemente mantengas presionado el botón y salgan disparos.
00:26:24
Entonces, ¿por qué lo decidí dejar así? Porque creo que es más fácil y más cómodo para el jugador simplemente clicar
00:26:34
y no estar centrado en estar en este movimiento del dedo, clicando y clicando, que puede llegar a ser cansado en algún momento.
00:26:42
claro, pero igual eso se puede solucionar
00:26:51
con que haya una cadencia
00:26:54
ya de disparo, es decir, mientras tengas
00:26:55
pulsado, sin tener que estar dando todo el rato
00:26:57
al botón de perdón, mientras esté pulsado
00:26:59
que esa cadencia esté continuamente
00:27:01
y cuando se suelta deja de disparar
00:27:04
¿por qué te digo esto? porque
00:27:06
aparte de que, a ver, que puede ser
00:27:07
buscado a propósito y es otra mecánica del juego
00:27:09
y ya está, pero
00:27:12
no me da la sensación de que se ha buscado, porque
00:27:13
es un poco errático, pero
00:27:15
claro, si luego además
00:27:17
la intención es meter con estas monedas
00:27:21
una store con otro tipo de armas y tal
00:27:23
claro, si
00:27:25
el arma básica ya puede funcionar
00:27:27
de pistola o metralleta
00:27:29
claro, luego
00:27:30
los aportes de cadencias y tal
00:27:33
claro, lo que te puede aportar un arma es que dispare
00:27:35
más rápido y tal, entonces bueno, que creo que sí que
00:27:37
es algo que habría que replantearse
00:27:39
que el arma básica ya como que tú
00:27:41
te fabriques cadencias
00:27:43
de disparo que a veces son una metralleta
00:27:44
para diferentes armas, sí, sí
00:27:47
o sea, yo lo que quiero aclarar
00:27:49
es que el principio, la idea
00:27:51
o sea, la idea principal es que simplemente
00:27:53
oprimiendo el botón y manteniéndolo presionado
00:27:55
salgan los disparos
00:27:57
y cuando quise arreglar
00:27:58
el tema de la cadencia porque es algo que
00:28:01
me di cuenta
00:28:04
y que no me gusta mucho, o sea, a mí no me gusta
00:28:05
esa parte, yo quiero que sea más
00:28:07
más controlada
00:28:09
el sistema de disparo
00:28:11
Pero es verdad que yo, haciéndolo y desarrollándolo yo, no pude dar con la solución porque está dentro de una corrutina. A lo mejor si lo saco de la corrutina y hago otra función que pueda ser un poco más óptima, podría controlarlo porque el tema con las corrutinas es que a mi parecer es que una vez las inicias o están en marcha, a veces son muy difíciles de saber qué van a ser exactamente, ¿sabes?
00:28:13
es como, se hacen bucles
00:28:40
internos dentro de la misma corrutina
00:28:43
y entonces un disparo
00:28:44
que querías hacer, a lo mejor son tres al mismo
00:28:46
tiempo
00:28:48
bueno
00:28:49
vamos, esto se podría ver, pero bueno
00:28:51
la corrutina al final lo que hace es abrir otro tipo de
00:28:54
ejecución, otro tiempo paralelo
00:28:56
que mientras no vayas abriendo
00:28:58
más corrutinas, claro, cada vez que abres una
00:29:00
corrutina y la inicias, ahí es el problema
00:29:02
probablemente, pero tú dentro de tu corrutina
00:29:04
lo puedes tratar como un update, realmente
00:29:06
Mira, yo lo que creo
00:29:08
lo que creo que está pasando con el sistema
00:29:10
de disparo
00:29:12
es que lo que tú dices, que al ser
00:29:15
un sistema que se abre paralelamente
00:29:17
al juego
00:29:19
no he diferenciado que si
00:29:19
ya está clicando el botón, o sea, yo lo que
00:29:22
creo que está pasando es que una vez clicas el botón
00:29:24
y vuelves a clicarlo, ya tengo dos corrutinas
00:29:26
y eso es lo que me está pasando
00:29:29
en el juego, entonces
00:29:31
quise parar la primera corrutina
00:29:32
de alguna forma y tuve muchos problemas
00:29:34
con ese sistema
00:29:36
pero básicamente lo que está pasando
00:29:38
es que la corrutina se vuelve a iniciar
00:29:41
entonces ya pues no son dos
00:29:42
y de dos pasa cuatro y así sucesivamente
00:29:44
claro
00:29:47
y con esto ya cierro, lo que tienes que pensar
00:29:48
de la corrutina no es que cada vez que quieras
00:29:51
un disparo se abra una corrutina
00:29:53
sino que tú abres una corrutina y dentro de ella
00:29:54
es también, es donde con el
00:29:56
con ciertas líneas de operaciones
00:29:58
que creo que sabéis
00:30:00
puedes poner un tiempo de cadencia, de pausa
00:30:02
o si no se pone nada y se deja nulo
00:30:05
esa línea, es cada
00:30:07
fotograma, entonces no es
00:30:09
ir abriendo más corrutinas
00:30:11
para ir aumentando
00:30:13
las balas, es que tú pulsas
00:30:15
incluso con un invoke repeating
00:30:17
o un invoke, se puede ir
00:30:19
no hace falta abrir tampoco una corrutina
00:30:21
explícitamente, hay métodos como los invoke
00:30:23
que permiten que se abran esas
00:30:25
digamos líneas o se ejecuten
00:30:27
métodos con el tiempo, pero bueno
00:30:29
simplemente
00:30:31
además lo indicas que es algo que tienes que pulir
00:30:32
tú te has centrado sobre todo, como el proyecto se centraba
00:30:35
específicamente, o sobre todo
00:30:37
o especialmente, mejor dicho
00:30:39
en conseguir este sistema guardado
00:30:41
y bueno, más o menos funciona
00:30:43
ya te comenté que para el ordenado
00:30:44
el strut y tal
00:30:47
está bien planteado, funciona bien
00:30:49
investigue sobre las listas
00:30:50
que son unos tipos de arrays, entre comillas
00:30:53
pero que permiten
00:30:55
a diferencia de los arrays que es más complejo
00:30:57
organizaciones
00:30:58
entonces bueno, simplemente así
00:31:01
yo, o sea, mi idea
00:31:02
es pasarlo a listas, comento
00:31:05
esta parte, lo que pasa es que a mí cuando
00:31:07
empiezo a
00:31:08
hacer código nuevo, cosas que no
00:31:09
sepa, que no controle mucho
00:31:12
en código
00:31:14
me gusta mucho como
00:31:16
ir paso a paso
00:31:18
no meterme de una a las listas
00:31:20
me gusta saber cómo funciona
00:31:22
exactamente
00:31:24
qué está haciendo en todo momento el sistema
00:31:25
de guardado, cómo se quita, cómo no
00:31:28
Entonces, para eso me gusta tener los datos como muy individuales para irlos tratando y moviéndolos a gusto.
00:31:30
vale, pues por mi parte
00:31:36
ya estaría, gracias por
00:31:40
la presentación, la defensa
00:31:42
y ya está
00:31:44
no te sé
00:31:46
decir específicamente
00:31:48
cuándo vais a tener las notas
00:31:50
pero va a tardar un tiempo
00:31:52
porque, claro, hasta que
00:31:54
no lleguen los exámenes
00:31:56
y se haga la junta de evaluación
00:31:59
no se ponen las notas y hasta ese momento no se hacen
00:32:00
oficiales, entonces bueno
00:32:02
no va a ser
00:32:03
en breves
00:32:06
ya publicaré
00:32:07
próximamente alguna
00:32:09
información sobre ello pero bueno que hay que
00:32:12
esperar un poco
00:32:14
por tu parte ya está hecho
00:32:15
y nada muchas gracias
00:32:18
muchas gracias a ti Daniel por todo
00:32:19
pues nada muchas gracias
00:32:21
y estamos en contacto
00:32:24
dale ánimo que se abre el resto de la tarde
00:32:26
muy bien gracias
00:32:28
hasta luego
00:32:30
- Materias:
- Imagen y Sonido
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Segundo Curso
- Subido por:
- Daniel M.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 4
- Fecha:
- 19 de mayo de 2025 - 19:53
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 32′ 32″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 387.43 MBytes