Déjame que le eche un ojal. La verdad es que no recuerdo muy bien este tipo de enemigos porque creo que no los usamos desde el Helmet. Probablemente haya un bug. Ese código se pasó desde MK1 (la churrera) y jamás se ha utilizado, así que seguro que en el proceso de adaptación se nos pasó algo.
Ya te cuento.
Proyecto CarWars!
Moderador: na_th_an
Re: Proyecto CarWars!
Como diría Rorshach: "Urm..."
Re: Proyecto CarWars!
A ver, creo que el tema es que el código es un poco castaña ^_^u Aquí es donde se lanza un enemigo nuevo:
$this->bbcode_second_pass_code('', 'case 0:
if (en_an_dead_row [gpit] == 0) {
baddies [enoffsmasi].x = baddies [enoffsmasi].x1;
baddies [enoffsmasi].y = baddies [enoffsmasi].y1;
en_an_alive [gpit] = 1;
en_an_rawv [gpit] = 1 << (rand () % 5);
if (en_an_rawv [gpit] > 4) en_an_rawv [gpit] = 2;
en_an_dead_row [gpit] = 11 + (rand () & 7);
#if defined(PLAYER_KILLS_ENEMIES) || defined(PLAYER_CAN_FIRE)
baddies [enoffsmasi].life = ENEMIES_LIFE_GAUGE;
#endif
} else {
en_an_dead_row [gpit] --;
}
break;')
El valor en en_an_rawv es el que contiene la velocidad con la que saldrá el enemigo (en valor absoluto). Según ese código, se saca un número de 0 a 4 inclusive, se echa para la izquierda ese número de espacios un 1 (con lo que se obtiene 1, 2, 4, 8 o 16)... Pero luego pone que si es mayor que 4 se cambie a 2.
O sea, que la velocidad será al azar entre 1, 2, 4, 2, 2. Casi siempre saldrá 2. No sé si ese es el efecto que obtienes.
Como en cada pantalla se reinicia la semilla del generador de números aleatorios, la secuencia obtenida siempre será la misma. A lo mejor es por eso por lo que parece que el tercero de una pantalla de tres es diferente.
Podríamos intentar mejorar esto. La verdad es que no recuerdo muy bien por qué es así; quizá se hizo para que la mayoría de las veces la velocidad del enemigo fuera 2. Quizá quitando el limitador (el if) y empleando una expresión como
$this->bbcode_second_pass_code('', 'en_an_raw [gpit] = 1 << (rand () % 3):')
tengas mejores resultados (saca 1, 2, o 4).
El problema es ver qué velocidades son aceptables. El movimiento de estos enemigos no usa aritmética de punto fijo como el de, por ejemplo, los enemigos tipo 6 o el personaje principal. Los valores son enteros y eso significa que estamos hablando de 1 pixel por frame, 2 o 4. No hay más granularidad, y 4 es quizá demasiado rápido para un enemigo que te persigue de esa manera.
Si usas
$this->bbcode_second_pass_code('', 'en_an_raw [gpit] = 1 << (rand & 1);')
Sólo tendrás enemigos de velocidades 1 o 2. Si quieres velocidades intermedias, necesitamos adaptar esto y meterle punto fijo a las coordenadas. No debería ser demasiado complicado.
$this->bbcode_second_pass_code('', 'case 0:
if (en_an_dead_row [gpit] == 0) {
baddies [enoffsmasi].x = baddies [enoffsmasi].x1;
baddies [enoffsmasi].y = baddies [enoffsmasi].y1;
en_an_alive [gpit] = 1;
en_an_rawv [gpit] = 1 << (rand () % 5);
if (en_an_rawv [gpit] > 4) en_an_rawv [gpit] = 2;
en_an_dead_row [gpit] = 11 + (rand () & 7);
#if defined(PLAYER_KILLS_ENEMIES) || defined(PLAYER_CAN_FIRE)
baddies [enoffsmasi].life = ENEMIES_LIFE_GAUGE;
#endif
} else {
en_an_dead_row [gpit] --;
}
break;')
El valor en en_an_rawv es el que contiene la velocidad con la que saldrá el enemigo (en valor absoluto). Según ese código, se saca un número de 0 a 4 inclusive, se echa para la izquierda ese número de espacios un 1 (con lo que se obtiene 1, 2, 4, 8 o 16)... Pero luego pone que si es mayor que 4 se cambie a 2.
O sea, que la velocidad será al azar entre 1, 2, 4, 2, 2. Casi siempre saldrá 2. No sé si ese es el efecto que obtienes.
Como en cada pantalla se reinicia la semilla del generador de números aleatorios, la secuencia obtenida siempre será la misma. A lo mejor es por eso por lo que parece que el tercero de una pantalla de tres es diferente.
Podríamos intentar mejorar esto. La verdad es que no recuerdo muy bien por qué es así; quizá se hizo para que la mayoría de las veces la velocidad del enemigo fuera 2. Quizá quitando el limitador (el if) y empleando una expresión como
$this->bbcode_second_pass_code('', 'en_an_raw [gpit] = 1 << (rand () % 3):')
tengas mejores resultados (saca 1, 2, o 4).
El problema es ver qué velocidades son aceptables. El movimiento de estos enemigos no usa aritmética de punto fijo como el de, por ejemplo, los enemigos tipo 6 o el personaje principal. Los valores son enteros y eso significa que estamos hablando de 1 pixel por frame, 2 o 4. No hay más granularidad, y 4 es quizá demasiado rápido para un enemigo que te persigue de esa manera.
Si usas
$this->bbcode_second_pass_code('', 'en_an_raw [gpit] = 1 << (rand & 1);')
Sólo tendrás enemigos de velocidades 1 o 2. Si quieres velocidades intermedias, necesitamos adaptar esto y meterle punto fijo a las coordenadas. No debería ser demasiado complicado.
Como diría Rorshach: "Urm..."
- salvaKantero
- Mensajes: 8
- Registrado: Vie, 08 Ene 2016, 20:00
- Contactar:
Re: Proyecto CarWars!
Arreglao!
Me he limitado a darle el valor 2 a en_an_rawv, que es la velocidad que me conviene.
4 es la velocidad muy rápida que te comentaba antes. Así que es de suponer que en_an_rawv siempre valía 4 con el código sin parchear. Ese sistema de velocidad aleatoria parece que no va muy fino en MK2. Al menos en el conjunto de todo el mogollón de cosas que tengo activadas en el config.h
Gracias otra vez!
![Hammer Time! :mc:](./images/smilies/1965543_1.gif)
Me he limitado a darle el valor 2 a en_an_rawv, que es la velocidad que me conviene.
4 es la velocidad muy rápida que te comentaba antes. Así que es de suponer que en_an_rawv siempre valía 4 con el código sin parchear. Ese sistema de velocidad aleatoria parece que no va muy fino en MK2. Al menos en el conjunto de todo el mogollón de cosas que tengo activadas en el config.h
Gracias otra vez!
- Adjuntos
-
- cw128.jpg (205.47 KiB) Visto 26445 veces
![Alien :alien:](./images/smilies/119.gif)
Re: Proyecto CarWars!
Qué pinta más cojonuda ![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
![Muy Feliz :D](./images/smilies/icon_e_biggrin.gif)
(_\_) (_|_) (_/_) (_|_) ILLO KE HEHEHEHEHEHEEEHEHEHEH!
¡Activa tu rainbow pechónico!
¡Activa tu rainbow pechónico!
Re: Proyecto CarWars!
Realmente muy chulo.
Y no, no va nada fino. Es un poco (bastante) chapu. A ver si encontramos el rato para hacer un tipo 7 un poquito mejor.
Y no, no va nada fino. Es un poco (bastante) chapu. A ver si encontramos el rato para hacer un tipo 7 un poquito mejor.
Como diría Rorshach: "Urm..."
Re: Proyecto CarWars!
Buenas a todos!
No veas qué pintaza de proyecto!!
Ánimo y deseandolo probar!!
![Cheerleader :cheer:](./images/smilies/cheer.gif)
No veas qué pintaza de proyecto!!
Ánimo y deseandolo probar!!
![Cheerleader :cheer:](./images/smilies/cheer.gif)
- salvaKantero
- Mensajes: 8
- Registrado: Vie, 08 Ene 2016, 20:00
- Contactar:
Re: Proyecto CarWars!
Buenass. El proyecto está prácticamente acabado. Gracias a todos por vuestros ánimos. He tenido que sacrificar las passwords para acceso directo a niveles y algunas otras cosillas por problemas de falta de memoria. Pero el resultado final es más o menos el esperado.
Aun me quedan dos temas musicales con el WYZ, que se me están atragantando porque no es nada fácil. (Que mérito tiene lo del murciano)
Y otro asunto es la licencia. Es la misma que la de la Churrera?? El acceso directo a "Licencia.txt" del post de Anjuel está caído. Yo de momento tengo puesto este texto...
LICENCIA:
MK2 está bajo licencia Creative Commons 3.0 "by-nc-ca", o sea, "Reconocimiento-NoComercial-CompartirIgual 3.0 Unported (CC BY-NC-SA 3.0)"
Esto significa que eres libre de:
- Copiar, distribuir y comunicar públicamente la obra.
- Transformar la obra.
- Crear productos derivados de la obra.
Bajo las siguientes condiciones:
Reconocimiento — Debes reconocer los créditos de la obra de la manera especificada por los Mojon Twins; sólo te pedimos que incluyas el texto "Powered by MK2" o incluyas el logo que incluimos en el archivo logo.png en un lugar visible, como puede ser la pantalla de carga o la portada del juego.
No comercial — No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia — Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.
Entendiendo que:
Renuncia — Alguna de estas condiciones puede no aplicarse si se obtiene el permiso de los Mojon Twins.
Aviso — Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.
Ya me contareis. Saludoss
Aun me quedan dos temas musicales con el WYZ, que se me están atragantando porque no es nada fácil. (Que mérito tiene lo del murciano)
Y otro asunto es la licencia. Es la misma que la de la Churrera?? El acceso directo a "Licencia.txt" del post de Anjuel está caído. Yo de momento tengo puesto este texto...
LICENCIA:
MK2 está bajo licencia Creative Commons 3.0 "by-nc-ca", o sea, "Reconocimiento-NoComercial-CompartirIgual 3.0 Unported (CC BY-NC-SA 3.0)"
Esto significa que eres libre de:
- Copiar, distribuir y comunicar públicamente la obra.
- Transformar la obra.
- Crear productos derivados de la obra.
Bajo las siguientes condiciones:
Reconocimiento — Debes reconocer los créditos de la obra de la manera especificada por los Mojon Twins; sólo te pedimos que incluyas el texto "Powered by MK2" o incluyas el logo que incluimos en el archivo logo.png en un lugar visible, como puede ser la pantalla de carga o la portada del juego.
No comercial — No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia — Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.
Entendiendo que:
Renuncia — Alguna de estas condiciones puede no aplicarse si se obtiene el permiso de los Mojon Twins.
Aviso — Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.
Ya me contareis. Saludoss
![Alien :alien:](./images/smilies/119.gif)
Re: Proyecto CarWars!
Sí, básicamente es la misma licencia que la Churrera (MK1). He actualizado el link, se ve que algo ha cambiado en el servidor que ha invalidado el anterior enlace:
https://www.mojontwins.com/licencia-mt/
Gracias por avisar![Sonrisa :)](./images/smilies/icon_e_smile.gif)
¡Y enhorabuena por el parto! ¡Deseando verlO!
https://www.mojontwins.com/licencia-mt/
Gracias por avisar
![Sonrisa :)](./images/smilies/icon_e_smile.gif)
¡Y enhorabuena por el parto! ¡Deseando verlO!
Como diría Rorshach: "Urm..."
- Cthonian Godkiller
- Mensajes: 268
- Registrado: Mar, 04 Feb 2014, 22:11
- Ubicación: Santa Cruz de Tenerife
Re: Proyecto CarWars!
Que pinta mas guapa, la imaginación no tiene límites ![Sartar en la corchoneta :corchoneta:](./images/smilies/jumper.gif)
![Sartar en la corchoneta :corchoneta:](./images/smilies/jumper.gif)
Soy el Destino Final de Todos los Destinos
http://cthoniangodkiller.wordpress.com/
http://cthoniangodkiller.wordpress.com/
- salvaKantero
- Mensajes: 8
- Registrado: Vie, 08 Ene 2016, 20:00
- Contactar:
Re: Proyecto CarWars!
![Adoremos a Vah-Ka! :vahka:](./images/smilies/vah-ka.gif)
En cuanto al código fuente, no lo he incluído esta vez porque está tan manoseao y desvirgao (ahora que no me lee el nath
![Oyeeeee :brasas:](./images/smilies/zxi.gif)
Ala, a otra cosa!
![Alien :alien:](./images/smilies/119.gif)
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 62 invitados