Saltar navegación

Defensa Mayo 25 - MACC - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 19 de mayo de 2025 por Daniel M.

4 visualizaciones

Grabación de defensa.

Descargar la transcripción

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
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
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
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
bueno y poco más 00:17:48
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
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
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid