Página 1 de 4

Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 18:19
por elborra
Muy buenas, hace apenas unos días descubrí a la Churrera y me decidí a intentar hacer alguna cosilla con él.

Antes de nada me gustaría destacar que en el poco tiempo que llevo "desarrollando" con ella cabe destacar la facilidad y lo poderosa que es. Estoy flipando en colores, ¡¡¡y en más de 15 os lo aseguro!! (quizás un día pueda decir que estoy en el nirvana...para el que me quiera entender... ejem ejem ¬¬UUU)

Al lio, primero decir que estamos (mi hermano se encargará de los gráficos y yo de la parte lógica+extras) creando un juego estilo dungeon zelda,aunque no tenemos muy claro si los enemigos serán matables y por tanto meter disparos, o no... o quizás alguna otra idea endiablada para acabar con ellos; ya que a priori un "disparo" tipo espada no es viable en la Churrera si no me equivoco.

Estoy trabajando ahora mismo con la 3.99.3 y para 48K y seguramente me iré moviendo a la última versión que vayais liberando porque cada versión que sacais es más alucinante que la anterior.

Ahora bien, hay un par de cosas que no consigo hacer funcionar por más vueltas que le de:

En primer lugar no consigo echar a andar los tiles animados. Si no me equivoco la única directiva para activarla es la de ENABLE_TILANIMS n (config.h), pues bien por más que pongo el primer tile del par a mi no se me animan. El tile en concreto es para el agua (como el efecto del "hombre que susurraba a las balas"). Aparte de definir por ejemplo: ENABLE_TILANIMS 46 ( el par 46-47 seránlos tiles a animar), a través de script pongo el tile 46 en una zona de juego y....nada ocurre, el tile 46 aparece pero no se van alernando con el 47. ¿Los tiles animados requieren de alguna otra condición?

En segundo lugar, no acabo de entender como funciona TEXT en el script, como se construye?
$this->bbcode_second_pass_code('', 'TEXT HOLA QUE HAY
TEXT "HOLA QUE HAY"
TEXT ("HOLA QUE TAL")')..... y que conste que ninguna de ellas parece funcionarme... El texto se corta siempre al primer espacio que pongo, o si es un símbolo seguido de texto (sin espacios) sólo imprime el símbolo. De todas formas mi objetivo es poner textos sobre la pantalla de juego como si se leyera un cartel o una nota, he hecho pruebas desde extern.h y print_str(tilex,tiley,attrib,cadena) ... pero no se como conseguir hacer una pausa depues de mostrar el texto, borrar el texto (o redibujar la pantalla) y continuar. Creo que hay funciones en mainloop y/o engine que pueda usar para tal menester, pero no doy con ellas. También le he echado un vistazo a lo de los textos en la 3.9.3b pero no me enterado ni un pijo :oops:

Me guardo otras dudas más técnicas de como funciona la churrera porque estoy haciendo alguna papachurrada que no se si está muy bien hecha o no, pero como digo lo dejaré para más adelante.

PD: Si hiciera falta podría hacer un "test" de 1 pantalla con lo de los tiles animados con la 3.99.3 base y subirlo (en su momento lo hice pero ya está borrado) y ver que puede estar pasando.

Re: Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 18:53
por Jarlaxe
Hola y bienvenido a Mojonia, elborra!

Verás que por aquí todos son muy majos y de seguro que te ayudan con tus consultas.

Yo llevo también muy poco tiempo por aquí, pero la verdad es que todos se han portado genial y me están resolviendo las dudas del jueguecillo con el que estoy enfrascado.

Por cierto, en el post del mismo, creo que se responde a estas consultas que haces, o eso creo.

En la pregunta de los tiles animados, lee en este hilo

viewtopic.php?f=9&t=1481&start=50

Y para los textos en pantalla

viewtopic.php?f=9&t=1481&start=80

Espero te pueda ser de utilidad, hasta que se pasen por aquí Nathan y compañia ;)

Re: Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 18:59
por na_th_an
Buenas, me alegro que te hayas animado :)

En primer lugar, el tema de los tiles animados es demasiado cutre y funciona mal. De todos modos (y ahora no recuerdo bien) creo que hay que tocar algunos valores más como la frecuencia de animación y cosas así, pero es algo que tengo que mirar porque ni siquiera me acuerdo de como funcionaba. Quizá Radas te pueda ayudar más que yo ;)

Los textos en el script van así:

$this->bbcode_second_pass_code('', 'TEXT ESTO_ES_UN_TEXTO')

Pueden llevar hasta 30 caracteres y deben escribirse sin comillas y con "_" en lugar del espacio. Ya sé, es muy cutre :lol:

Para hacer un delay puedes llamar a "espera_activa" pasándole el número de vueltas que quieres que espere. En modo 128K cada "vuelta" equivale a 20ms, pero en el modo 48K es "cierto valor de tiempo", así que mejor que experimentes. Es posible que al compilar te de un warning porque la función espera_activa aún no está definida cuando el compilador llama al código del extern, así que para solucionarlo escribe un "void espera_activa (int c);" al final de definitions.h y se arreglará.

Para redibujar la pantalla, lo que yo suelo hacer es escribir un REENTER después de la llamada a EXTERN en el script. También puedes hacer una llamada a draw_scr (); al final de la función C, que es lo mismo.

Los textos que hemos puesto como "extra" en /spare de la 3.99.3b están explicados en el hilo de Dogmole, esta mañana mismo lo escribí :)

Re: Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 20:02
por elborra
Jus! que velocidad :D

$this->bbcode_second_pass_quote('Jarlaxe', '
')En la pregunta de los tiles animados, lee en este hilo
viewtopic.php?f=9&t=1481&start=50
Para un hilo que no estaba siguiendo al día resulta que mis primeras dudas se responden en el (arrrrg y mira que siempre uso el buscador, se ve que no estos días..) Yo seguía el de redastan y el "hombre que susurraba a las balas" que fué el comienzo del ENABLE_TILANIMS

$this->bbcode_second_pass_quote('na_th_an', 'B')uenas, me alegro que te hayas animado :)
En primer lugar, el tema de los tiles animados es demasiado cutre y funciona mal. De todos modos (y ahora no recuerdo bien) creo que hay que tocar algunos valores más como la frecuencia de animación y cosas así, pero es algo que tengo que mirar porque ni siquiera me acuerdo de como funcionaba. Quizá Radas te pueda ayudar más que yo ;)
Yap, eso ya lo vi, la cuestión es que a mi ni se movian, independientemente del valor de la frecuencia. Creo que es por lo de packed, como explicaré más adelante.

$this->bbcode_second_pass_quote('na_th_an', 'L')os textos en el script van así:
$this->bbcode_second_pass_code('', 'TEXT ESTO_ES_UN_TEXTO')
Pueden llevar hasta 30 caracteres y deben escribirse sin comillas y con "_" en lugar del espacio. Ya sé, es muy cutre :lol:
Ahhhhmmmm, pero de cutre nada! es lo que hay y muy bien que está, pero no daba con ello.

$this->bbcode_second_pass_quote('na_th_an', '
')Para hacer un delay puedes llamar a "espera_activa" pasándole el número de vueltas que quieres que espere. En modo 128K cada "vuelta" equivale a 20ms, pero en el modo 48K es "cierto valor de tiempo", así que mejor que experimentes. Es posible que al compilar te de un warning porque la función espera_activa aún no está definida cuando el compilador llama al código del extern, así que para solucionarlo escribe un "void espera_activa (int c);" al final de definitions.h y se arreglará.

Para redibujar la pantalla, lo que yo suelo hacer es escribir un REENTER después de la llamada a EXTERN en el script. También puedes hacer una llamada a draw_scr (); al final de la función C, que es lo mismo.
Mejor explicado imposible. Thanxs.


Total,...

...Entiendo entonces por lo que pone en el hilo que los tiles animados estan preparados para el tileset unpacked (no me habia coscado que lo de usar el tileset de 16 o el de 48 se referia a esto...yo estaba siempre haciendo packed como en los talleres), y por lo tanto a la hora de usar mappy dispongo de los 48 para mapear, el resultado es que el mapa.h que genere ocupará más y dependerá del uso de los tiles 16-47 en las pantallas para que compense o no.

Hablando del tema unpacked, como ya he mencionado la perspectiva de los graficos y en concreto de las paredes de las habitaciones hace, en mi caso, que el numero de tiles se dispare a 12 (variable según tengamos el tileset definitivo): 4 para las esquinas, 2 tiles para las horizontales (superior e inferior), otros 2 para las verticales (izquierda y derecha) y otros 2 para las aperturas (no se como definirlo)... el caso es que 12 tiles son muchos para "malgastarlos" en una sóla variante de "fondo" con lo cual empecé a pensar en maneras de reutilizar los tiles de alguna manera.

Lo primero que pense es probar a ver si modificando a pelo en estructura tileset la parte de los atributos de los tiles por otros podía hacer un cambio de "paleta". Así que en la parte scripting hago una llamada a extern.h donde piso la informacón de los atributos por otros y de vuelta en SCRIPT hago un REDRAW y ¡Bingo! . Ahora uso un flag para guardar el número de paleta virtual y cuando entro a una pantalla donde quiero cambiar de "zona", compruebo el flag y cambio la paleta si procede. Así tengo paredes azules, verdes, moradas o lo que quiera usando los mismos 12 tiles en lugar de 12*n creando un poco más de diversidad en el mapeado.

Esta misma idea la he usado para tener pares de puertas y llaves de distintos colores (y gestionar el dibujado de ambas y las aperturas por script) cambiando directamente los 4 atributos del tile llave.

Ahora me pondré a mirar cual es la estructura de un tileset generado cuando no este packed y ver si puedo hacer esto mismo. En cualquier caso, ¿¿¿ sería más rentable que modificara las rutinas pertinentes en mainloop.h o donde proceda para comprobar la flag y cambiar los atributos directamente que usando script+extern.h ???

Y por último y deseando poder petaros la Churrera, he intentado, la bellaca idea (no porque quiera usarla), con éxito de meter en tileset.h una estructura tileset2 con otro juego completo de 48 tiles (llamadme loco, pero lo hago por puro masoquismo) y remplazarlo ingame y recargar pantalla. :twisted: , como ya digo funciona correctamente y esto supone tener 96 tiles distintos... (48 a la vez)

Obviamente esto a la larga me dejaría con un espacio pequeño para hacer la lógica del juego completa, aunque por el momento no me ha petado :shock:
Tendré que empezar a hacer números porque ya he leido lo que ocupa los distintos usos de las llamadas en scripting.

Sorry por estos chorro-post pero es que suelen salirme así.

Re: Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 21:11
por na_th_an
Voy rápido y no tengo tiempo, pero de entrada te diré, y resumiendo, que cualquier cosa que quieras hacer ocupará mucho menos si la cambias directamente en el código del motor que buscándose un maneje para hacerlo con el script.

Sobre tener varios tilesets, creo que sería más factible tenerlo comprimido. Exportas tu tileset en .bin en vez de en C desde SevenuP (por ejemplo), lo comprimes con appack, luego lo metes en tu código y puedes usar la funcion unpack que hay en el motor para descomprimirlo sobre la dirección de los tiles en uso, que está siempre apuntada por el puntero "tileset".

Imaginate que tienes dos tilesets, los exportas a bin y los comprimes de forma que obtienes los archivos tileset1c.bin y tileset2c.bin. Ahora puedes, por ejemplo, en extern.h, hacer algo así (escribo de memoria, puede estar mal):

$this->bbcode_second_pass_code('', 'extern unsigned char tileset1c [0];
extern unsigned char tileset2c [0];

#asm
._tileset1c
BINARY "tileset1c.bin"
._tileset2c
BINARY "tileset2c.bin"
#endasm

void do_extern_action (unsigned char n) {
switch (n) {
case 1:
unpack (tileset1c, tileset);
break;
case 2:
unpack (tileset2c, tileset);
break;
}
}
')

Así podrás cambiar de tileset con un EXTERN 1 o un EXTERN 2.

EDITO: Otra cosa, de concepto: No hay "tilesets packed y tilesets unpacked". Los tilesets siempre son iguales, tienen 48 tiles. Lo que es packed/unpacked es el mapa. Las mapas unpacked pueden referenciar cualquiera de los 48 tiles. Los packed, sólo 16... Pero los 32 tiles restantes siguen ahí y se puede poner desde el script.

También puedes hacer lo que hicimos en Ramiro: tener mapas packed pero hacer que se usen los primeros 16 o los siguientes 16 tiles según qué pantalla. Es como tener dos tilesets de 16 en el tileset principal. Además teníamos 16 más para cosas especiales que poníamos por scripting.

En cuanto te metes a tocar tripas, ves que cabe un barco.

Re: Proyecto juego Churrera. Dudas

Publicado: Sab, 18 Ene 2014, 22:39
por elborra
Sip, es brutal!....

Además que pongas esos conocimientos al alcance de todos es increible. Y es que hay soluciones para todo con apenas añadir un poco de código, lo que demuestra la versatilidad de la Churrera :adore:

Cuando dije lo del tileset packed me equivoqué al expresarme, entiendo que se referia a que el mapa.h generado en el caso de packed cada tile del mapa se puede representar con 4 bits para las 16 posibilidades (2^4) y para los 48 tiles al menos necesitariamos 7 bits con lo cual desperdiciaríamos el byte completo... escribir packed es para decirle a vuestra uilidad cnvmap que hemos usado 16 y en caso de no poner ese argumento se trata de un mapa que representa los 48 tiles; pero se ve que con esto de ir a saco no asimile el concepto y escribo esas chalauras XD. Quizás el termino me confunda, acabo pensando en compressed (que se que no tiene nada que ver...pero así de lerdo puedo ser jejeje)

En cuaquier caso ya he hecho la prueba de usar mapas con 48 tiles y las animaciones tiran perfectas. Quizás sea posible esa adaptación genérica para los mapas packed :roll:, porque no creo que necesite usar los 48 tiles para los mapeados.

En cuanto a tener 2 tileset distintos tampoco creo que lo llegue a necesitar, todo dependerá de como vaya progresando la cosa pero de todas formas haré las pruebas pertinentes comprimiéndolos y usando unpack desde extern.h, porque nunca se sabe cuando voy a querer utilizarlo y además el saber no ocupa lugar :D

Por último, lo de los atributos de las paletas no es ninguna locura, ¿verdad?, lo pasaré a las rutinas de pintado (ahora miraré porque no me acuerdo si tenía que meterle mano al mainloop o a print.h) porque como digo ,hasta hora, lo que hacia era añadir a extern.h un array con los diferentes atributos:

$this->bbcode_second_pass_code('', 'unsigned char ap[100] = {
77, 77, 13, 13, 13, 13, 77, 77,
13, 77, 13, 77, 77, 13, 77, 13,
13, 77, 13, 13, 77, 13, 13, 13,
13, 13, 13, 77, 13, 13, 77, 13,
77, 77, 77, 13, 77, 77, 13, 77,
77, 13, 77, 77, 13, 77, 77, 77,

22, 22, 48, 48, 48, 48, 22, 22,
48, 22, 48, 22, 22, 48, 22, 48,
48, 22, 48, 48, 22, 48, 48, 48,
48, 48, 48, 22, 48, 48, 22, 48,
22, 22, 22, 48, 22, 22, 48, 22,
22, 48, 22, 22, 48, 22, 22, 22,
};')y un bucle para pisar la información
$this->bbcode_second_pass_code('', 'void do_extern_action (unsigned char n) {
unsigned int i;
switch (n){

// "PALETA" PAREDES
case 0: //
for(i = 0; i < 48; i ++) {
if(i<32) {
tileset [2120 + i] = ap[i];
} else {
tileset [2160 + i] = ap[i];
}
}
break;
case 1: //
for(i = 0; i < 48; i ++) {
if(i<32) {
tileset [2120 + i] = ap[i+48];
} else {
tileset [2160 + i] = ap[i+48];
}
}
break;

...
...')Y asi con llamadas EXTERN 0 y EXTERN 1 cambio los atributos. Obviamente las posiciones estan preparadas para unas posiciones concretas del tileset, en concreto los tiles 2-9 y 20-23.
En la parte de script primero compruebo una flag, que se encarga de indicar que "paleta" esta activa, si hay que cambiar hago la llamada a EXTERN y por último hago un REDRAW para redibujar la pantalla y cambio el valor de la flag.
EJEMPLO:
$this->bbcode_second_pass_code('', 'ENTERING SCREEN 33
IF FLAG 1 <> 1
THEN
EXTERN 1
REDRAW
SET FLAG 1 = 1
END
END')
Que conste que las rutinas de "pisado" de información no son las mejores... con poner los 12 tiles seguidos me evitaria las comprobación del if para saber si estoy con los tiles 20-23, pero era eso o quedarme con muy pocos tiles para crear el mapa en packed. Pero como de momento no tenía problemas de espacio no he ido corrigiendo esos detalles, pero seguro que llega el momento. Es lo bonito de esto, quitando toda la dificultad de crear un motor, es jugar con las limitaciones puras del spectrum: colores, espacio en memoria, etc...

Como por ejemplo, si quisiera usar 8 juegos de atributos (paletas) seguramente en lugar de hacer esas estructuras de 96 char los cambiaría por valores directamente, siguiendo el ejemplo, y en pseudolenguaje,
$this->bbcode_second_pass_code('', 'SI atributo = 77 ENTONCES atributo=22;
SI atributo = 13 ENTONCES atributo=48;')

Gracias de nuevo (ya avise que soltaba post rollos)

Re: Proyecto juego Churrera. Dudas

Publicado: Dom, 19 Ene 2014, 12:14
por na_th_an
Hay una forma mucho más sencilla y compacta de cambiar los atributos.

Si te fijas, en tileset.h, los últimos 256 valores son los colores de los caracteres. En primer lugar, tendrías que añadir el segundo set de 256 atributos justo después de estos últimos, en el mismo array.

Luego te tienes que ir a printer.h. Como no sé qué tipo de render usas, vamos a cambiarlos todos. Fíjate que en el código hay varias lineas así (o parecidas):

$this->bbcode_second_pass_code('', 'gen_pt = tileset + 2048 + t;')

Este tipo de lineas lo que hacen es calcular dónde está el atributo de cada carácter que vamos a pintar: 2048 bytes más adelante que el carácter en sí, dentro del tileset.

El set de atributos principal empieza en 2048, y el nuevo que has añadido empezará en 2048 + 256 = 2304. Se puede cambiar de set de esta forma, por ejemplo: cambiando ese 2048 por una variable:

$this->bbcode_second_pass_code('', 'gen_pt = tileset + attrs_offset + t;')

(tendrás que cambiarlo en varios sitios: en printer.h hay varias funciones que imprimen tiles que se compilarán o no dependiendo del tipo de render que hayas seleccionado; como no sé cuál usas, vamos a cambiarlos todos).

Lo siguiente es crear esa variable en definitions.h, poniendo al final:

$this->bbcode_second_pass_code('', 'unsigned int attrs_offset = 2048;')

Y en tu extern.h puedes tener algo así:

$this->bbcode_second_pass_code('', 'void do_extern_action (unsigned char n) {
attrs_offset = 2048 + (n << 8);
}')
(que es lo mismo que 2048 + n * 256)

Así un EXTERN 0 elegiría el set principal, y EXTERN 1 el alternativo. Y puedes poner más sets, que se elegirían con EXTERN 2, EXTERN 3... Ad infinitum.

Re: Proyecto juego Churrera. Dudas

Publicado: Dom, 19 Ene 2014, 12:17
por na_th_an
Además, puedes modificar draw_scr_background (en engine.h) para no tener que hacerlo desde el script. Al principio de draw_scr_background, antes de hacer nada, puedes calcular el valor de attrs_offset según valga n_pant, que es el número de pantalla actual, y entonces el fondo se dibujará automáticamente con los colores correctos.

Algo parecido hacemos en Ramiro, pero cambiando el offset de los 16 tiles que se dibujarán. Justo al entrar en draw_scr_background se mira en qué pantalla está para pintar con los primeros 16 tiles o con los siguientes.

Re: Proyecto juego Churrera. Dudas

Publicado: Dom, 19 Ene 2014, 13:45
por elborra
Thnxs again,

Ya me había puesto a ello, ya tenia hecha la parte del offset para los muros, pero algo más marrullera porque tal como lo pones cambiamos los atributos de los 48 tiles = 48*4 = 192 bytes por cada set... mientras que yo sólo cambiaba 12*4=48 bytes por set...

Yo lo que he hecho es en printer.h (no uso sombras ni nada así que estaba cambiando sólo la linea después de los #ifdef) en concreto para la churreera 3.99.3 la línea 90
$this->bbcode_second_pass_code('', 'pointer = (unsigned char *) &tileset [2048 + t];')
y lo estoy replanzando por
$this->bbcode_second_pass_code('', 'pointer = (unsigned char *) &tileset [2048 + t + paleta]')auque lo cambiaré por attrs_offset que es mucho más descriptivo.

Cambiar el valor del offset no lo hacía tan elegantemente. No estoy acostumbrado a usar los desplazamientos :oops: y mira que se que son muchiiiisimo más rapidos. También esto es a consecuencia de que al estar haciéndolo con comprobaciones para reducir el rango de tiles a 2-9 y 20-23 hay alguna que otra condición if de más, pero creo que no compensa el rendimiento de la función por ahorrar esos bytes (aun siendo 4/1),no?

Aparte de todo estaba haciendo pruebas con los bloques empujables y me he dado cuenta de un detalle: al moverse, el tile que deja "atrás" siempre es remplazado por el tile 0 (por razones más que obvias), por tanto visualmente si hay tiles de suelo "decorando", digamos una alfombra, al pasar el bloque dejará tras de si el tile 0 y desaparecerá nuestra querida y mullidita alfombra. He hecho por tanto una pequeña aproximación a una solución básica para 1 solo bloque empujable por pantalla (para el que quiera reaprovecharla, quizás sea incluso más util para juegos de vista lateral donde es más facil hacer un juego con 1 sólo bloque empujable por pantalla) y usar la flag que guarda el tile para pintarlo justo antes del siguiente cambio.

Vamos a engine.h y cambiamos esto
$this->bbcode_second_pass_code('', '#if defined(ACTIVATE_SCRIPTING) && defined(ENABLE_PUSHED_SCRIPTING)
flags [MOVED_TILE_FLAG] = map_buff [15 * y1 + x1];
flags [MOVED_X_FLAG] = x1;
flags [MOVED_Y_FLAG] = y1;
#endif
// Mover
map_attr [15 * y1 + x1] = 10;
map_buff [15 * y1 + x1] = 14;
map_attr [15 * y0 + x0] = 0;
map_buff [15 * y0 + x0] = 0;
// Pintar
draw_coloured_tile (VIEWPORT_X + x0 + x0, VIEWPORT_Y + y0 + y0, 0);
draw_coloured_tile (VIEWPORT_X + x1 + x1, VIEWPORT_Y + y1 + y1, 14);')por esto
$this->bbcode_second_pass_code('', '#if defined(ACTIVATE_SCRIPTING) && defined(ENABLE_PUSHED_SCRIPTING)
draw_coloured_tile (VIEWPORT_X + x0 + x0, VIEWPORT_Y + y0 + y0, flags [MOVED_TILE_FLAG]);
map_buff [15 * y0 + x0] = flags [MOVED_TILE_FLAG];
flags [MOVED_TILE_FLAG] = map_buff [15 * y1 + x1];
flags [MOVED_X_FLAG] = x1;
flags [MOVED_Y_FLAG] = y1;
#endif
// Mover
map_attr [15 * y1 + x1] = 10;
map_buff [15 * y1 + x1] = 14;
map_attr [15 * y0 + x0] = 0;
// Pintar
#if !defined(ENABLE_PUSHED_SCRIPTING)
map_buff [15 * y0 + x0] = 0;
draw_coloured_tile (VIEWPORT_X + x0 + x0, VIEWPORT_Y + y0 + y0, 0);
#endif
draw_coloured_tile (VIEWPORT_X + x1 + x1, VIEWPORT_Y + y1 + y1, 14);')
Una cosa importante es que habria que setear a mano la flag al entrar en la pantalla diciendole cual es el tile sobre el que estaría el bloque al inico. Por ejemplo (teniendo en cuenta que #define MOVED_TILE_FLAG 20 y el bloque estaría virtualmente sobre una alfombra siendo esta el tile 10):
$this->bbcode_second_pass_code('', 'ENTERING SCREEN 25
IF TRUE
THEN
SET FLAG 20 = 10
END
END')
Y Listo, los cambios estan hechos para que no se vea afectado al compilar si se elige o no activar el scripting para los bloques empujables. Pero eso sí, se veran afectadas todas las pantallas con bloques empujables con lo que si ponemos 2 o más bloques de este tipo por pantalla, al cambiar de tile empujable el segundo dejará tras de sí el rastro del anterior en su primer movimiento. Creo que se entiende...

Re: Proyecto juego Churrera. Dudas

Publicado: Dom, 19 Ene 2014, 13:58
por na_th_an
Pocí :)

En realidad la solución óptima para los tiles empujables es que fueran "otra capa" diferente a la del mapa, de forma que tuviésemos información sobre "qué hay debajo". El problema es el de siempre: a ver donde metemos tanta información :)

Sobre lo otro, lo mejor es ir comprobando lo que va ocupando el binario detrás de cada cambio. Te lo digo por experiencia, ya que en cada versión siempre cambio una rutina por otra que ocupa menos: a veces creemos que ahorramos porque usamos un buffer más pequeño o una sustitución más ajustada, pero en la lógica extra necesaria al final ocupamos más de lo que ahorramos. Lo suyo es comprobarlo y comparar (si estamos chungos de memoria).