Página 2 de 4
Re: Evitar que el prota coja el color del fondo
Publicado: Jue, 19 Jun 2014, 19:56
por D_Skywalk
Ese ejemplo yo lo veo bien, no hay ELSE en sí, pero puedes encadenar diferentes valores de una variable como en ese ejemplo
Re: Evitar que el prota coja el color del fondo
Publicado: Jue, 19 Jun 2014, 20:56
por na_th_an
Sï y no, o sea, sí pero no está completo del todo
$this->bbcode_second_pass_quote('Gocho', '
')$this->bbcode_second_pass_code('', 'PRESS_FIRE AT SCREEN 7
IF PLAYER_TOUCHES (7,5)
IF FLAG 3 = 0
THEN
SET FLAG 3 = 1
# Bienvenido
EXTERN 4
REDRAW
END
IF FLAG 3 = 1
THEN
# No tengo nada mas que decirte
EXTERN 2
REDRAW
END
END')
No hay ELSEs ni nada, así que necesitarías duplicarlo todo. Además, fíjate como he cambiado de orden las cláusulas. De otra manera, al ejecutarse la primera se pone FLAG 3 a 1 y justo después se ejecutaría la segunda.
$this->bbcode_second_pass_code('', 'PRESS_FIRE AT SCREEN 7
IF PLAYER_TOUCHES (7,5)
IF FLAG 3 = 1
THEN
# No tengo nada mas que decirte
EXTERN 2
REDRAW
END
IF PLAYER_TOUCHES (7,5)
IF FLAG 3 = 0
THEN
SET FLAG 3 = 1
# Bienvenido
EXTERN 4
REDRAW
END
END')
Tú ten en cuenta que se ejecuta TODO a menos que haya un REENTER O un WARP_TO. La segunda cláusula se ejecuta aunque se haya ejecutado la primera. Esto puede parecer un coñazo pero para otras cosas viene bien.
Programando Ninjajar me he dado cuenta de varias carencias. Algunas las he solucionado, pero ahora, tras tanto tiempo, no sé qué es nuevo y qué no
Tengo casi arreglado el MT Engine MK 2 (que es lo que lleva Ninjajar) para que funcione en 48K y entonces podré lanzarlo. Hasta entonces, si digo algo que no funciona ya sabéis por qué es
Es que creo que metí un BREAK para interrumpir la ejecución pero no sé si lo hice o sólo lo pensé, y si lo hice no sé si fue en la Churrera o ya en el MT Engine MK 2
Mira motor_de_clausulas.txt a ver si hay un BREAK definido
Sobre lo otro que dices, no lo pillo muy bien, pero si quieres que aparezca un texto nada más entrar en una pantalla lo mejor es poner un FIRE_ZONE que pille la pantalla entera y luego poner el EXTERN en el PRESS_FIRE. Contrólalo con un flag para que el FIRE_ZONE y la acción sólo se activen una vez, y listo. Creo que en Ninjajar está hecho así al principio de la fase del poblado, en la pantalla 8 del primer script de ninjajar.spt, por si quieres mirarlo.
Re: Evitar que el prota coja el color del fondo
Publicado: Jue, 19 Jun 2014, 21:31
por Gocho
Vale, eso explica porque salí el 2º texto en lugar del 1º y porque me volvía to loca
Re: Evitar que el prota coja el color del fondo y Scripts
Publicado: Jue, 19 Jun 2014, 22:26
por Gocho
En algún lado la estoy cagando porque ya no sale ni texto y el extern no lo he tocado
Script, con el Redraw comentado por si acaso es muy rapido:
$this->bbcode_second_pass_code('', 'ENTERING SCREEN 9
IF FLAG 1 = 0
THEN
SET_FIRE_ZONE 32,112,48,128
END
END
PRESS_FIRE AT SCREEN 9
IF PLAYER_IN_X 32,48
IF PLAYER_IN_Y 112,128
IF FLAG 1 = 0
EXTERN 4
# REDRAW
END
END
')
El extern:
$this->bbcode_second_pass_code('', 'void do_extern_action (unsigned char n_action) {
switch (n_action){
case 0:
break;
case 1:
print_str (16, 20, 79, " BIENVENIDO. ");
print_str (16, 21, 79, " ESPERO SEPA SER");
print_str (16, 22, 79, "FLEXIBLE CON MIS");
print_str (16, 23, 79, " TRABAJADORES ");
// espera_activa(500);
break;
case 2:
print_str (16, 20, 79, " NO TENGO NADA ");
print_str (16, 21, 79, " MAS QUE HABLAR ");
print_str (16, 22, 79, " CON USTED... ");
print_str (16, 23, 79, " ");
// espera_activa(500);
break;
case 3:
print_str (16, 20, 79, " HOLA JEFE. ?YA ");
print_str (16, 21, 79, " HABLO CON LA ");
print_str (16, 22, 79, " DOCTORA SOBRE ");
print_str (16, 23, 79, " LOS SUICIDIOS? ");
// espera_activa(500);
break;
case 4:
print_str (16, 20, 79, " TENGO QUE VER ");
print_str (16, 21, 79, " AL DIRECTOR DE ");
print_str (16, 22, 79, " LA BASE IO. ");
print_str (16, 23, 79, " ");
// espera_activa(500);
break;
}
}')
Pues el tap ni se inmuta. Entro en la debajo de la 9. Subo a ella, paso por el único pasillo que hay y no salta texto ninguno. Llevo todo el día liado con esto y ya tengo la cabeza como un bombo pero no veo nada mal hecho
Re: Evitar que el prota coja el color del fondo y Scripts
Publicado: Vie, 20 Jun 2014, 00:54
por NeilParsons
Buenas a todos. ¡Qué de tiempo!
Pues estoy con Gocho con esto de la BitBitJam y la verdad es que esperemos poder llegar a terminar este proyecto a tiempo. Los tiles que había realizado hasta ahora para los suelos estaban hechos en un principio en varios colores, pero después de ver con más detenimiento el tema, lo mejor que he podido hacer (y ya está resuelto en este momento) es ponerlos con tinta de color blanco, así que el protagonista coja precisamente el color de estos fondos.
En breve le mando a Victor el resultado de esta nueva modificación.
Por cierto, ya he tenido ocasión de ver la última beta del juego y decirme si para evitar que el astronauta pase por encima de las sillas metálicas si éstas han de ir con otro brillo u color, o si una vez se añada la última modificación de los tiles con los suelos en blanco eso se arregla.
Subo aquí un .rzx con lo que he visto hasta este momento.
Estaré aquí presente hasta no muy tarde. De paso, os enseño los tiles:
Re: Evitar que el prota coja el color del fondo y Scripts
Publicado: Vie, 20 Jun 2014, 08:06
por na_th_an
$this->bbcode_second_pass_quote('Gocho', '.')..
Vale.
En primer lugar descomenta los espera_activa.
En segundo lugar, los print_str imprimen en el buffer de splib2, no muestran nada. Para que se vea en pantalla hay que llamar a sp_UpdateNow (). Coloca una llamada a esa función antes de espera_activa y listo. O, mejor, ahorra algo de espacio refactorizando:
$this->bbcode_second_pass_code('', '
void do_extern_action (unsigned char n_action) {
switch (n_action){
case 1:
print_str (16, 20, 79, " BIENVENIDO. ");
print_str (16, 21, 79, " ESPERO SEPA SER");
print_str (16, 22, 79, "FLEXIBLE CON MIS");
print_str (16, 23, 79, " TRABAJADORES ");
break;
case 2:
print_str (16, 20, 79, " NO TENGO NADA ");
print_str (16, 21, 79, " MAS QUE HABLAR ");
print_str (16, 22, 79, " CON USTED... ");
print_str (16, 23, 79, " ");
break;
case 3:
print_str (16, 20, 79, " HOLA JEFE. ?YA ");
print_str (16, 21, 79, " HABLO CON LA ");
print_str (16, 22, 79, " DOCTORA SOBRE ");
print_str (16, 23, 79, " LOS SUICIDIOS? ");
break;
case 4:
print_str (16, 20, 79, " TENGO QUE VER ");
print_str (16, 21, 79, " AL DIRECTOR DE ");
print_str (16, 22, 79, " LA BASE IO. ");
print_str (16, 23, 79, " ");
break;
}
sp_UpdateNow (); // Muestra lo que hay en el buffer en pantalla!
espera_activa (500);
}')
¡Y muy buena pinta esos gráficos!