Página 7 de 15

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 11:39
por NeilParsons
¿Bastaría con activar #define ACTIVATE_SCRIPTING más una de las dos siguientes? Ahora que lo veo, pues es lo que me faltaba por cambiar. Luego lo hago.

Gracias!

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 13:47
por na_th_an
Eso es. Pero como te indican, tu script no va a funcionar correctamente.

Tienes que comprender el funcionamiento de una cláusula. No pienses en BASIC porque realmente no es así. Es algo mucho más sencillo. Una cláusula es una lista de comprobaciones y una lista de comandos que se ejecutarán cuando TODAS las comprobaciones sean correctas. No se pueden anidar cláusulas.

El motivo de que esté hecho así es para que la interpretación sea directa y rápida y podamos permitirnos tener bastantes cosas "de fondo" en las comprobaciones.

Además, como te menciona elborra, tienes que usar flags a modo de banderas para las cosas que sólo quieras que se ejecuten una vez.

Y también es muy importante la ejecución. Las comprobaciones no se están ejecutando siempre, eso sería fatal para la velocidad del juego. Las comprobaciones, por lo general, sólo se ejecutan al entrar en la pantalla (ENTERING) o al pulsar acción (PRESS_FIRE). Como bien te indican, si quieres que algo "reaccione" sólo con moverte a una zona de la pantalla ("tocar" una zona) tienes que definir un FIRE_ZONE, en cuyo caso también tienes que activarlo en config.h y recordar que esa "área caliente" debe ser única por pantalla y que funciona generando una pulsación de "acción" cuando el personaje la toca. Eso significa que lo suyo es colocarlas lo más pequeñas y ajustadas posible (mira el ejemplo del tutorial), para limitar al máximo la zona de la pantalla donde se comprueban cosas y ralentizar lo mínimo el juego.

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 14:31
por NeilParsons
Ahora tengo otra...

Ya he activado el scripting en config.h, he corregido las cláusulas y he intentado compilar por fin todo, pero en el proceso se produce un error en la línea 273 del archivo msc.h:

$this->bbcode_second_pass_code('', 'sccz80:"msc.h" Line 273 Error#42: Unknown symbol: fzx1
sccz80:"msc.h" Line 273 Error#33: Must be lvalue')

abortándose la compilación. He ido a mirar con el editor y tiene que ser algún valor inadecuado dentro del proceso SET_FIRE_ZONE. He comprobado todos los parámetros en las cláusulas donde defino este comando y no he visto nada raro.

Aquanoids-1.3b-src.rar
(651.96 KiB) Descargado 292 veces

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 16:59
por elborra
Buenas Neil,

Eso es porque en el fichero definitions.h falta por declarar las variables. Mirando el resto del código de la churrera me he dado cuenta que en config.h tampoco existe la cláusula ENABLE_FIRE_ZONE ni los bloques de código que controlan la zona de disparo en otra serie de ficheros; todo esto me da a mi que es porque la versión de la churrera que estas usando no tiene implementado las zonas de disparo y a saber que otras cosas...

Pasar el juego a la version de la churrera 3.99.3b no supone apenas trabajo. Reconfigurar config.h y copiar los ficheros de los mapas, enemigos, gráficos y scripts a los directorios correspondientes. Probablemente el juego mejore en rendimiento y tendrás todas las posibilidades que ofrece esta versión.

Y ya si te pones podrías intentar pasarlo a MK2 que va a ir como un tiro además de que es más ligera y por tanto te cabrán más recursos.

Yo este finde si quieres puedo ayudarte/pasarte el proyecto a la Churrera 3.99.3b

Suerte!

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 18:14
por NeilParsons
Cada vez me mareo más con esto... Igual estoy siendo bastante pesado (lo siento) y un paquete, pero no termino de ver resuelto el problema. Estaba usando la versión 3.99b y efectivamente la directiva ENABLE_FIRE_ZONE no estaba incluida en la lista de config.h. Si la creo entonces... no sé...

Y tenía desde anteayer la versión 3.99.3c del engine y he probado a incluir todo lo hecho hasta ahora, scripting incluido, activar lo que me interesaba en config.h, y cuando voy a compilarlo todo (ahora sí que todo me ha salido correcto), resulta que me sale un fichero tap en el que el bloque principal se va por poco más de 37 KB de memoria. Claro está, el juego no funciona... :evil:

Aquanoids1.4beta-nofnciona.rar
(1.32 MiB) Descargado 290 veces


PD: A este paso, se me van a quitar las ganas de sacarlo...

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 18:48
por na_th_an
Mañana le echo un vistazo. No es normal que simplemenet cambiando de versión te suba tanto.

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 18:49
por angel
Paciencia Ignacio! :gay:

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 19:50
por Cthonian Godkiller
no te desanimes, a mi me paso con el primero, no paraba de petar por todos los sitios, hasta estuve a punto de sacar del armario los libros de C de cuando estudiaba , pero ya veras que aquí encuentran el problema :mrgreen:

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 19:58
por Cthonian Godkiller
creo que es el engine.h que tienes una versión antigua ,acabo de probarlo con el engine del godkiller y funciona, sustituye el engine.h en tu carpeta y deberia funcionar, a mi me compila y funcinoa sin problemas pero se queda pillado en el menu cuando seleccionas el control :twisted:

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 20:09
por NeilParsons
Ainsss... :yoda: :yoda: :yoda: