Main Menu

Recent posts

#71
Proyectos / Re: Echo v1.4: road to season ...
Last post by Drumpi - August 01, 2023, 04:03:43 PM
Perdón por el silencio de... ¿radio? Bueno, el caso es que tampoco hay mucho que contar, porque estos días he estado muy liado por temas ajenos, ya no sólo del trabajo.

Pero vamos a lo que importa.
Sí, finalmente empecé a probar las colisiones, y por supuesto, no funcionaban, así que me tiré un buen rato intentando ver por qué fallaban. Cuando lo hicieron, pues me dio por ponerme con la rotura del bloque: hice una animación sencilla, básicamente creé cuatro procesos que eran lanzados en 4 direcciones, a los que les afectaba la gravedad, y al llegar a la parte de abajo de la pantalla, desaparecían. Hice algunas pruebas, con diferentes tamaños, diferentes velocidades y diferentes velocidades de rotación y quedó algo curioso, mucho más vistoso que el que desaparezcan los tiles sin más.

Hablando de lo cual, y después de ajustar mejor los tamaños de las explosiones, me puse a probar qué tal se manejaría el lanzamiento de bombas. Creo que ya lo expliqué antes, pero tengo problemas con la carga del disparo, porque el teclado no me permite usar Z, X y dos cursores al mismo tiempo, lo cual es extremadamente problemático. Tengo que darle una vuelta a eso y buscarle una solución cuanto antes, porque si no, voy a tener que prescindir de la fuerza de lanzamiento.
Pero a pesar de eso, estuve probando con una pared de ladrillos, y hay una jugabilidad interesante ahí, teniendo que saber cómo romper los ladrillos, y teniendo puntería, para poder hacer escaleras, pasadizos... me ha molado, y me ha traído recuerdos del Tails Adventures.
De hecho, si os acordáis, ya mencioné que había desarrollado otra bomba antes que la de ahora, que me había salido por accidente. Pues si hago que se pueda detonar con una segunda pulsación del botón de disparo, pues tenemos las bombas remotas, y eso da muchísimo juego. Me gustaría poder añadirlas más adelante como las "Fox bombs" o algo así.

Poco más he hecho dese entonces. He podido comprobar que los disparos normales también me habrían servido para romper las paredes (en un análisis previo, me decía que no, que estos colisionaban con la pared y perdían la energía antes de ser detectados por el tile). He hecho algún ajuste extra y ya está. También he estado investigando diversas animaciones de explosiones, para diseñar un par de ellas para los niveles 1 y 2 de la explosión, y dejar, de momento, la que ya tengo para el nivel 3.
Lo cierto es que ahora no sé por dónde seguir, porque tenía pensado que el arma para derrotar al boss 4 también se disparara cargando el disparo, pero visto lo visto voy a tener que rechazar la idea. En fin, ya veremos.

De momento tengo que terminar un par de cosas, puede que esté sin escribir unos cuantos días. Ya os contaré entonces cómo va la cosa.
#72
Proyectos / Re: Echo v1.4: road to season ...
Last post by Drumpi - July 21, 2023, 11:02:45 AM
No, no se ha parado el desarrollo (de momento). Es sólo que esta semana no he tenido tiempo de ponerme a escribir los avances del fin de semana pasado. Teníamos una entrega en el trabajo a un cliente y... bueno, que se ha liado la cosa.

Por desgracia, esta semana no tengo muchos avances que contaros. Si la semana pasada estuve probando el lanzamiento de granadas e implementando los 3 niveles diferentes de uso, en esta estuve haciendo ajustes a la explosión, pues como creo que ya comenté, me la esperaba mucho más grande.
Así que estuve experimentando con diferentes tamaños, lo cual me llevó un buen rato hasta que di con el que andaba buscando, y tras eso... me entró una depresión ¿tenía que rehacer el gráfico? Uff, qué pereza. Me llevó casi una hora, no pensaba repetirlo. Así que hice un reescalado guarro, y lo dejé a modo de guía, hasta que se me ocurra cómo mejorarla. Eso me llevó a otro problema: no tenía las animaciones de las explosiones medianas y pequeña, y como no andaba con ánimos (ni ideas) para gráficos, lo dejé aparcado.

Lo que sí tenía que ir haciendo era el proceso de colisión que afectaría a las paredes y enemigos, así que me puse a programarlo, a crear sus gráficos de colisión (unas circunferencias que tendrán alpha = 0), a sus invocaciones y a probar. Cuando ya tenía su tamaño definido, y el tiempo de duración, me puse a programar los tiles que se podrían romper con ellos y... Bueno, programados están, pero no los he añadido al mapa de testeo ni los he probado. Ese es el siguiente paso.

También tuve que reordenar algunos gráficos, de cara a añadir los gráficos de colisión, de explosión y una pequeña animación para indicar que la bomba está a punto de explotar por expirar el tiempo.

Desde entonces, ha sido una cosa detrás de otra y no he podido ver si la cosa funcionaba (al menos, de forma burda, sin animaciones ni efectos). Creo que tengo pensado cómo animar la rotura del tile, pero eso será a partir de mañana.
En fin, que eso es lo que hay. Poco a poco, pero avanzando. A ver si termino ya la granada y me pongo a... no sé si será hacer las modificaciones para usarla en los tres subniveles correspondientes, o a programar el arma para liquidar al boss. Ya veremos.
#73
Proyectos / Re: Echo v1.4: road to season ...
Last post by Drumpi - July 10, 2023, 12:56:22 PM
Bueno, otro fin de semana, y otro empujoncito al juego. No demasiado porque tampoco le he dedicado un montón de horas, pero han sido productivas.

Me he centrado de nuevo en una de las nuevas armas: la Solar Blast. Ya hablé de ella, y finalmente he conseguido que en el nivel 1 explot... desaparezcan al contactar con una pared, porque no me he puesto a crear la animación de la explosión, aún (ya sabéis que me cuesta mucho ponerme a dibujar, y más a animar). También que en el nivel 2 se pegue a las paredes y, al cabo de un momento, explot... desaparezca.
Las del nivel 3 también rebotan contra paredes, suelo y techo (más sobre esto después), y al cabo de un rato, explotan... sí, estas sí explotan. No me gusta el gráfico de la explosión ni el tamaño de la misma, pero sí he conseguido darle el efecto que quería.

Por desgracia he tenido que prescindir del lanzamiento en 8 direcciones. Hice pruebas y era anti-intuitivo, no conseguía lanzar las bombas a donde quería, y encima, al tener que cargar el disparo, tenía problemas para mantener todos los botones funcionando a la vez. Total, que hice otra prueba y, finalmente, el funcionamiento será similar a las armas: las bombas se lanzarán en arco tanto a izquierda como derecha, con las únicas excepciones verticalmente, tanto arriba como abajo. Esto será muy útil a la hora de disparar al suelo mientras se salta de una plataforma a otra. Aún tengo que ajustar el tiempo de carga y el arco, pero de momento funciona.

El caso es que me ha retrasado mucho más de lo esperado. Hace mucho que no leía el código y se me habían olvidado algunos detalles, y en programación los detalles son imprescindibles. Tras un rato de experimentación y de leer código, ya lo entendí y pude arreglarlo todo (la mitad del tiempo de ayer fue solucionando problemas).


Lo peor pasó el sábado: mientras programaba, en una de las pruebas, en concreto, en la parte donde se lanzaban las bombas, vi que era muy divertido intentar lanzarlas y acertar a una posición concreta, y se me empezaron a ocurrir un montón de situaciones en las que sería muy útil tirar una bomba por encima de una pared, hacer que esta rebote... era como un minijuego en sí mismo... pero no era lo que buscaba. De hecho, sería interesante que se puedan lanzar con un apuntado básico mientras se corre, o bien, cuando se está quieto, poder apuntar con precisión y con la fuerza necesaria. Y que además, se puedan detonar con una segunda pulsación.
Y entonces esto me planteaba un dilema: usar las bombas que ya tenía planificadas, que tenían su utilidad, o estas nuevas, que daban mucho juego... y como tengo el cerebro simétrico, pues no me decidía. Aún hoy tengo mis dudas y, cuanto más lo pienso, más me gusta la idea de las nuevas. De momento he seguido el plan trazado, y he dejado una copia de este tipo de granadas por si quiero usarlas.

Aún tengo que sopesarlo, pero no me gustaría escribir código que no voy a utilizar, dado el tiempo que tengo. También me gustaría oír opiniones, ya sea por este foro como por el otro. Ya digo que me tiré un buen rato lanzando granadas sólo por diversión :D

...aunque se me está ocurriendo que se pueden fusionar ambas ideas... que las bombas, aparte de explosionar por tiempo (o no), que se puedan detonar con una segunda pulsación... Mmmm
#74
Proyectos / Re: Echo v1.4: road to season ...
Last post by Drumpi - July 07, 2023, 09:15:54 AM
¿Nunca os ha pasado que no teníais ganas de sentaros delante del ordenador, que te obligas a escribir, al menos, 15 minutos de código, y cuando te das cuenta, llevas una hora? Pues eso mismo me pasó ayer. Tenía como 30 minutos antes de tener que ponerme a hacer la cena, y no me apetecía mucho ponerme a programar, pero tampoco quería desaprovechar el tiempo libre que tenía jugando a una consola.

Total, que encendí el ordenador, ya más o menos con las ideas de lo que quería desarrollar, y empecé a escribir algo de código. La guía que creé ayer fue de mucha ayuda, porque sabía dónde tenía que meter mano. Quería preparar, al menos, la flecha que indicaba la dirección y la fuerza hacia la que tirar la granada (más sobre esto, después), y pensaba que sería fácil, con unas 5 o 6 líneas y se acabó... pero como andar con trigonometría, ángulos, denos y cosenos era un engorro (y recordemos que la Wiz ya está lo suficientemente saturada como para meterle cuentas difíciles), preferí hacerlo "a la antigua", y eso implicaba escribir mucho más código.

Empecé colocando la flecha, luego haciendo que mirara en la dirección correcta, luego trasladé el código a los otros estados, añadí el indicador de fuerza y cuando me quise dar cuenta... estaba programando en la oscuridad ^^U
También había avanzado mucho más de lo que me había propuesto: puse la flecha señalando hacia dónde iba el lanzamiento, un medidor de fuerza que crece mientras mantienes el botón pulsado, e incluso que descontase la exp del arma al lanzar la granada. Sólo faltó precisamente eso, lanzar el nuevo objeto, que está sin programar, y el tema de la "recarga", o sea, poner un tiempo entre que se lanzó la granada y se pueda lanzar la siguiente. Para lo primero, tengo que repasar el código de los objetos que aumentan la experiencia del arma, ya que el comportamiento es similar (hasta la parte en que explota).

El caso es que, estaba haciendo las pruebas, y algo que me empezó a preocupar ayer se hizo visible en ese momento. Estoy dudando si el tema de tener que "cargar" el lanzamiento es buena idea o no. Eso obliga al jugador a ser previsible, y estar pulsando el disparo antes del momento de lanzar la granada, y además, a coordinarlo con la fuerza justa para que alcance su objetivo. Y lo peor de todo, moviéndose todo el rato, porque mientras cargas el arma, echo se sigue moviendo, y tienes que mantener los cursores pulsados para definir la dirección de lanzamiento.
Aún no he hecho las pruebas pertinentes, quizás le estoy dando demasiadas vueltas y es el comportamiento normal de este tipo de disparos, pero no dejo de preguntarme si hay forma de simplificar esto. No sé, por ejemplo, que no haya indicador de fuerza, y todos los lanzamientos son iguales de fuertes. O que mientras cargas, que no te puedas mover (sería complicado de programar, tal como está la cosa, pero tendría que mirarlo). No lo sé, hasta que no pueda lanzar cosas en un entorno controlado, no tendré la certeza de estar haciendo lo más cómodo para el jugador.

También hay que tener en cuenta que las granadas son un arma que sólo usarán bien los expertos, porque tenerlas en su máxima potencia es muy complicado: no solo pierdes EXP al ser golpeado, sino que también, cualquier uso de ella reduce dicho indicador. A eso le sumamos que la barra de EXP sólo tiene 10 unidades (¿eran 10 o lo bajé a 9?), y sólo las 3 más altas te permiten lanzar el verdadero "Solar Blast". A cambio, estamos hablando de una explosión de 6 tiles de diámetro (96 pixels), que causa 12 puntos de daño (frente a los 10 que hace la Leaf Blade a máxima potencia) a todos los enemigos a los que alcanza, y que puede permanecer suficiente tiempo como para volver a dañar a los enemigos a los que ya ha hecho daño.
...Aunque esto último debo revisarlo, creo que los enemigos, al colisionar con un "impacto de arma" (un proceso secundario que llevan todas las armas para hacer colisión... o así lo recuerdo), reducen la energía del impacto para que así muera, y si eso pasa, la onda expansiva sólo podría afectar a 1 enemigo por frame. Crear un nuevo tipo de colisión significa añadir el mismo código a más de 25 tipos de enemigos.

Y eso es otra cosa que me preocupa: tengo que hacer que la granada, en sus dos niveles inferiores, explote al impactar con un enemigo, y no puedo ir haciendo collision con todos los tipos de enemigo que existen (por un lado, porque como digo, son muchos tipos, y segundo, porque sería usar demasiadas veces "collision" y eso va a penalizar el rendimiento).
Aunque acabo de recordar que tuve hace tiempo una idea, y la voy a escribir para que no se me olvide: que la granada tenga un "impacto de arma" activo, con 1pto de daño. Así, al acercarse a un enemigo, este recibirá un daño inicial que los de alrededor no, "matará" al impacto, y eso activará la explosión. De nuevo, tengo que revisar el tema de la invulnerabilidad de los enemigos tras recibir un impacto... y creo que la Leaf Blade tiene mucho que decir al respecto.


Por último, quería anotar algunas ideas para usar a Doggy en el juego, tal como mencioné en el foro de GP32Spain, pero este mensaje se ha alargado mucho más de lo esperado, así que lo dejaré para otra ocasión.
#75
Proyectos / Re: Echo v1.4: road to season ...
Last post by Drumpi - July 06, 2023, 09:29:31 AM
Lo siento por el silencio de radio, pero este fin de semana me ha sido imposible dedicarle tiempo al Echo. Tuve que salir para arreglarle algo a mi madre y estuve todo el fin de semana liado, y eso incluyó algunos días previos al viernes.
Además, ya lo dije, tampoco es plan de ponerme entre semana a las tantas de la noche a programar si tengo que madrugar para ir a trabajar :D

De momento, lo único que puedo contar (porque no he hecho más) es que he reducido el tamaño de la nueva bomba, a un tamaño más manejable por Echo, aunque creo que, definitivamente, voy a usar el sprite de 11x11 para cuando la granada llegue al nivel 3. Me interesa que el jugador pueda saber cuándo se ha llegado a ese nivel porque va a funcionar de forma diferente: como ya comenté (creo), la idea es que en nivel 1 la granada explote por contacto, con un radio mínimo; en nivel 2 la explosión será mayor, pero la granada se quedará pegada un par de segundos antes de explotar; y el nivel 3, el radio de explosión va a ser muy considerable, pero la granada rebotará en las paredes y explotará con el tiempo, y por eso me interesa que el jugador sepa cuándo la granada se detendrá en su destino o cuándo va a empezar a dar vueltas por ahí.

Pues eso, que he hecho un sprite más pequeño y que lo he estado probando, a ver qué tal se veía... y de paso he revisado el evento al conseguir dicha arma.

Por otro lado, me he puesto a mirar el código de control del arma, para añadir lo que necesita la granada para funcionar. Hay muchas cosas que quiero agregar, porque quería implementar un medidor de fuerza, por lo que tengo que poner el medidor, moverlo para que apunte en la dirección de lanzamiento, implementar los distintos estados (reposo, cargando, lanzar, ¿tiempo de recarga?)... Así que, como le dedico ratos sueltos, y quiero ir por partes, he cogido y he creado una estructura básica en el código, que no es más que la "máquina de estados": he planteado las 4 zonas, una por estado, y qué tiene que pasar para cambiar de una a otra (pulsar el botón, soltarlo...), aunque no están todas aún. Luego, entre comentarios, he puesto qué se tiene que hacer en cada una de las secciones, y la idea es ir sustituyendo cada comentario por su código, de esta forma sé lo que tengo que hacer en cada momento, lo que me falta, y programar aquello que me apetece en ese momento.

Creo que es la primera vez que empleo este sistema. Por lo general suelo tener la lista de cosas por hacer en la cabeza o en un documento de texto. A ver qué tal sale.

Debería intentar terminar con la granada este fin de semana... aunque debería terminar con el arma del boss para poder ir terminando esa parte, pero bueno, soy muy veleta y prefiero programar según me apetece en ese momento, especialmente si sólo tengo un rato, porque no me gusta ponerme con las cosas difíciles sin haber "calentado" previamente con algo sencillo.
En fin, ya lo iremos viendo. No quiero adelantarme porque no suelo cumplir mis propios plazos, ya sea por una cosa o por otra, y este mes creo que voy a tener un poco más de tarea de lo habitual, y cuando me vaya de vacaciones, voy a dejar los ordenadores aparcados, para descansar un poco de ellos.
#76
Proyectos / Re: Sailor Moon RevengeX for P...
Last post by Drumpi - July 06, 2023, 08:46:48 AM
Sé que llego muy tarde, pero me quiero unir a las felicitaciones por el juego :D
Nunca es fácil terminar uno, porque siempre le añadirías más cosas, pero si has logrado los objetivos y estás satisfecho con el trabajo, genial :D
Sobre todo, mi enhorabuena por haber logrado portarlo a DC.
#77
Site / Re: [resuelto] La Wiki está ca...
Last post by panreyes - June 29, 2023, 04:00:16 PM
Por supuesto Drumpi, el que se ponga con ello que lo resuelva como prefiera.

Pero creo que no es necesario una BD relacional para generar una documentación. Y cualquier programa web requiere mantenimiento. Si hacemos algo sencillo y estático, no se romperá.
#78
Site / Re: [resuelto] La Wiki está ca...
Last post by Drumpi - June 29, 2023, 11:15:07 AM
Juer, por lo que veo, se han ido generando todas las páginas, una a una.
A ver, yo de diseño web estoy muy pez, pero ¿No es mejor tener todo eso en una BBDD, aunque sea en un fichero MySQL? Y luego una web que haga consultas a la BBDD y se formatée todo y... pero lo dicho, a mi eso me queda grande para mis conocimientos actuales :P Además, si hago una WebApi con Net Core, necesitaría instalarlo en el IIS de un servidor.
#79
Mesa de Ayuda / Re: ¿Hay algún tutorial, paso ...
Last post by Drumpi - June 29, 2023, 11:02:33 AM
Sí, se lo de DIVPM (aunque no recordaba el nombre), pero en su momento, no sé si es que me daba errores o qué pasaba, pero no lograba compilar ni un "hola mundo", por eso lo decía.

Con Pixtudio sí que llegué más lejos. No se si te acuerdas, Panreyes, con el proyecto "learn in pairs", pero lo tuve que dejar porque al ir a cargar un fichero, la carpeta donde se supone que se guardaban los ficheros aparecía vacía. No sé si tenía algo que ver con los permisos de ficheros, sobre cómo maneja Android el espacio de ficheros de usuario o qué. Creo que te pasé el código fuente para depurarlo.

Pero bueno, si hay que usar Unity o Godot, pues nada, iremos mirando. Ya comenté en su momento que quería hacer una aventura en 3D, porque no tenía claro si quería hacer un juego en perspectiva lateral o aerea.
#80
Site / Re: [resuelto] La Wiki está ca...
Last post by panreyes - June 27, 2023, 02:28:52 PM
La wiki se rompe cada día. La atacan muchísimo y las actualizaciones le hacen mucha mella.

Lo ideal sería tener algo como ésto pero sin bugs:
https://pixtudio.divhub.org/docs/

Tienes el código por aquí, por si quieres hacer un fork y darle un intento:
https://github.com/panreyes/pixtudio/tree/master/docs/web