buenas
empecé, junto con la primera parte prácticamente, esta segunda parte, y me he dispuesto también a acabarla.
Tenía una dudilla: sería sencillo modificar el compartamiento de uno sólo de los enemigos, para que use un frame cuando va en una dirección, y otro cuando va en otra, en vez de como ahora hace, que va
continuamente alternando ?
Es para uno de los sprites que uso de los enemigos, que básicamente es un fantasmita, y me gustaría que los 2 frames que dispongo por sprite, me sirva cada uno para usarse cuando se mueve hacia la derecha o izquierda.
gracias,
Proyecto Doctor Adventures 2, Lost in Ishir
Moderador: na_th_an
Re: Proyecto Doctor Adventures 2, Lost in Ishir
Todo puede hacerse. ¿Qué versión estás usando? ¿MK1, MK2?
Como diría Rorshach: "Urm..."
Re: Proyecto Doctor Adventures 2, Lost in Ishir
MK1.
he estado olisqueando los fuentes de la carpeta \dev pero no soy capaz ni de localizar donde pueda estar lo que busco.
si me orientas, aunque sea en la ubicación de los fuentes (y si no es ensamblador) prometo darle un vistazo!
gracias!
he estado olisqueando los fuentes de la carpeta \dev pero no soy capaz ni de localizar donde pueda estar lo que busco.
si me orientas, aunque sea en la ubicación de los fuentes (y si no es ensamblador) prometo darle un vistazo!
gracias!
Re: Proyecto Doctor Adventures 2, Lost in Ishir
Hace tanto tiempo que no miro esos fuentes que para orientarte tendría que mirar y ya que miro, pues pienso como hacerlo XD
Uf, lo que es mirar código de hace más de tres años. La parte donde se elige el sprite para pintar un enemigo tiene un montón de peste, y es esta, situada en engine.h alrededor de la linea 1836
$this->bbcode_second_pass_code('', 'if (active) {
// Animate
en_an [gpit].count ++;
if (en_an [gpit].count == 4) {
en_an [gpit].count = 0;
en_an [gpit].frame = !en_an [gpit].frame;
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + en_an [gpit].frame];
}')
Aquí se utiliza en_an [gpit].frame como flip-flip, y luego se mira en enem_frames usando la "base_frame" del enemigo sumándole el valor del flip-flop.
Puedes pinchar ahí, por ejemplo. Si tu enemigo especial es, por ejemplo, el número 1, pondrías:
$this->bbcode_second_pass_code('', 'if (active) {
// Animate
if (malotes [enoffsmasi].t == 1) {
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + (malotes [enoffsmasi].mx < 0)];
} else {
en_an [gpit].count ++;
if (en_an [gpit].count == 4) {
en_an [gpit].count = 0;
en_an [gpit].frame = !en_an [gpit].frame;
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + en_an [gpit].frame];
}
}')
Si el muñeco se mueve a la izquierda, o sea, la velocidad horizontal es negativa (mx < 0), (malotes [enoffsmasi].mx < 0) valdrá 1, si no valdrá 0. Eso significa que en tu spriteset tendrás que poner primero al muñeco mirando a la derecha y luego a la izquierda. Si lo quieres poner al revés, cambia < por >.
Esto lo he programao así al voleo, a lo mejor no va.
Uf, lo que es mirar código de hace más de tres años. La parte donde se elige el sprite para pintar un enemigo tiene un montón de peste, y es esta, situada en engine.h alrededor de la linea 1836
$this->bbcode_second_pass_code('', 'if (active) {
// Animate
en_an [gpit].count ++;
if (en_an [gpit].count == 4) {
en_an [gpit].count = 0;
en_an [gpit].frame = !en_an [gpit].frame;
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + en_an [gpit].frame];
}')
Aquí se utiliza en_an [gpit].frame como flip-flip, y luego se mira en enem_frames usando la "base_frame" del enemigo sumándole el valor del flip-flop.
Puedes pinchar ahí, por ejemplo. Si tu enemigo especial es, por ejemplo, el número 1, pondrías:
$this->bbcode_second_pass_code('', 'if (active) {
// Animate
if (malotes [enoffsmasi].t == 1) {
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + (malotes [enoffsmasi].mx < 0)];
} else {
en_an [gpit].count ++;
if (en_an [gpit].count == 4) {
en_an [gpit].count = 0;
en_an [gpit].frame = !en_an [gpit].frame;
en_an [gpit].next_frame = enem_frames [en_an [gpit].base_frame + en_an [gpit].frame];
}
}')
Si el muñeco se mueve a la izquierda, o sea, la velocidad horizontal es negativa (mx < 0), (malotes [enoffsmasi].mx < 0) valdrá 1, si no valdrá 0. Eso significa que en tu spriteset tendrás que poner primero al muñeco mirando a la derecha y luego a la izquierda. Si lo quieres poner al revés, cambia < por >.
Esto lo he programao así al voleo, a lo mejor no va.
Como diría Rorshach: "Urm..."
Re: Proyecto Doctor Adventures 2, Lost in Ishir
funciona!
perfectamente!
gracias!
perfectamente!
gracias!
Re: Proyecto Doctor Adventures 2, Lost in Ishir
hay algún problema en el siguiente 'cacho' de script, y no consigo verlo... y cada pequeño cambio, me supone tener que perder un rato pasándome el juego (pese a darme ventajas, ciertas partes hay que hacerlas si o si.. y se pierde bastante tiempo) para probar...
$this->bbcode_second_pass_code('', 'ENTERING SCREEN 11
IF TRUE
THEN
#012345678901234567890123456789
TEXT !!NECESITAS!LOS!28!DIAMANTES!!
#decoracion
SET TILE(2,2) = 36
SET TILE(3,2) = 38
END
IF FLAG 1 = 28
THEN
#012345678901234567890123456789
TEXT !!!COLOCA!LOS!28!DIAMANTES!!!!
END
END')
Teniendo en config.h
$this->bbcode_second_pass_code('', '#define OBJECT_COUNT 1 // Defines which FLAG will be used to store the object count.')
porqué pese a entrar en la pantalla 11, con los dichosos 28 diamantes, nunca se cumple el IF ?
gracias!
$this->bbcode_second_pass_code('', 'ENTERING SCREEN 11
IF TRUE
THEN
#012345678901234567890123456789
TEXT !!NECESITAS!LOS!28!DIAMANTES!!
#decoracion
SET TILE(2,2) = 36
SET TILE(3,2) = 38
END
IF FLAG 1 = 28
THEN
#012345678901234567890123456789
TEXT !!!COLOCA!LOS!28!DIAMANTES!!!!
END
END')
Teniendo en config.h
$this->bbcode_second_pass_code('', '#define OBJECT_COUNT 1 // Defines which FLAG will be used to store the object count.')
porqué pese a entrar en la pantalla 11, con los dichosos 28 diamantes, nunca se cumple el IF ?
gracias!
Re: Proyecto Doctor Adventures 2, Lost in Ishir
$this->bbcode_second_pass_code('', 'IF OBJECT_COUNT = 28 ')
así funciona ok..
pero aun no se porque no funciona el IF FLAG 1 = 28.. en la primera parte me funcionó (con otro valor más bajo... es la única opción que me queda..)
así funciona ok..
pero aun no se porque no funciona el IF FLAG 1 = 28.. en la primera parte me funcionó (con otro valor más bajo... es la única opción que me queda..)
Re: Proyecto Doctor Adventures 2, Lost in Ishir
Um - debería funcionar si tienes el #define. Déjame que miro el código, a ver si veo el gazapo.
Como diría Rorshach: "Urm..."
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados