Página 7 de 13

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Mié, 03 Jun 2015, 13:20
por angel
$this->bbcode_second_pass_quote('primy', ':')shock: ¿donde puedo encontrar el "include" ese?


No me hagas caso :lol:

Ya te dirá el nath, que seguramente he metido la gamba :D :copameao:

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Mié, 03 Jun 2015, 20:15
por elborra
Buenas, bueno en principio el error no es porque esté bien o no el código del script (de hecho si hay algo mal lo que pasará es que no funcionará correctamente el script, pero hasta donde yo se no te va a lanzar un error al compilar). Aún así hay un error con la claúsula ENTERING GAME, esta se utiliza para ejecutar script como si fuese cualquier otra pantalla, a diferencia que en lugar de ser en una pantalla concreta se lanza al comenzar el juego (o nivel en MK2).

Con lo cual tendrías que dejarlo así:
$this->bbcode_second_pass_code('', '
ENTERING GAME
IF TRUE
THEN
; lo que sea. Pero ahora mismo no tienes nada.
END
END

ENTERING SCREEN 0
IF TRUE
THEN
SET TILE (8, 6) = 20
SET TILE (3, 7) = 22
SET TILE (4, 7) = 23
SET TILE (3, 8) = 38
SET TILE (4, 8) = 39
END
END
')
En principio yo los comentarios dentro del script los precedo con un ";" pero como ya digo, creo que el compilador de scripts cuando encuentra algo que no lo reconoce lo obvia.

Ahora al meollo de tu problema
$this->bbcode_second_pass_code('', '
@echo off
rem cd ..\script
rem msc YTUJ.spt msc.h 30
rem copy *.h ..\dev
rem cd ..\dev
cd ..\map
..\utils\mapcnv mapa.map 10 3 15 10 15 packed
copy mapa.h ..\dev
cd ..\dev
zcc +zx -vn YTUJ.c -o YTUJ.bin -lndos -lsplib2 -zorg=25000
..\utils\bas2tap -a10 -sYTUJ loader.bas loader.tap
..\utils\bin2tap -o screen.tap -a 16384 loading.bin
..\utils\bin2tap -o main.tap -a 25000 YTUJ.bin
copy /b loader.tap + screen.tap + main.tap YTUJ.tap
del loader.tap
del screen.tap
del main.tap
del YTUJ.bin
echo DONE
')

A priori no se cuantas lineas realmente tienes comentadas con "rem" pero deberias descomentar las 3 siguientes a @echo off, que son las encargadas de compilar el script y copiar los ficheros necesarios al directorio dev. El error que te da es porque no encuentra precisamente uno de los ficheros "msc-config.h" en dev, fichero que se genera cada vez que compiles el script. Lo dicho, quita "rem" de esas 4 lineas y a ver que pasa.
$this->bbcode_second_pass_code('', '
cd ..\script
msc YTUJ.spt msc.h 30
copy *.h ..\dev
')

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Mié, 03 Jun 2015, 20:17
por elborra
Uy, al querer editar el post anterios le di a citar e hice un nuevo post. Sorry.

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Lun, 08 Jun 2015, 09:35
por primy
Bueno tras un duro fin de semana en la Retro Madrid Day reparando un Amiga 500 y dándole a todo los juegos que veía vuelvo a estar operativo. Gracias de nuevo no me cansare en dároslas una y otra vez, hoy voy a probar lo de eliminar "rem" y por supuesto los comentarios del scriping te voy a hacer caso y a usar ";" ya que hay que hacer caso a los maestros :adore: luego os cuento que tal me ha ido. :dalefran:

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Mié, 10 Jun 2015, 09:58
por primy
Sigo peleando con el script y por lo menos voy consiguiendo decorar aquí y allá con cositas que le dan otro estilo al juego, pero me está sucediendo una cosa curiosa que yo achaco a la creación del tileset y es que algunas decoraciones cuando pasas por delante de ellas se esconde el personaje, o choca contra ellas ¿es debido a algo en la creación del tileset?
Os dejo un par de videos que he hecho para que veáis lo raro que es, en el primero veréis como hay partes de la decoración del esqueleto que esconden al personaje, y luego salto sobre el cartel de exit y lo atravieso perfectamente una y otra vez, pero en el segundo video en otra parte del juego choco contra algo que no veo justo en la decoración de un cartel de exit, ya os digo que son carteles diferentes uno tiene la flecha a la izquierda y el otro a la derecha.

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Mié, 10 Jun 2015, 18:24
por elborra
Buenas,

Realmente tienes dos problemas distintos, uno si tiene que ver con la creación del tileset pero el otro con los comportamientos de los tiles (pared, traspasable, tile que hace daño, etc...)

El problema de que el personaje se "esconda" (los enemigos van a tener el mismo comportamiento) es debido a los atributos de color de esa esquina inferior derecha del tile de los pies del esqueleto. Actualmente tendrás color negro para el fondo (paper) y color negro para la tinta (ink) con lo cual al pasar por encima el spripe toma esos mismos colores y parece desaparecer. Cambia el color de la tinta a blanco de ese trozo y listo.

Respecto a los de los carteles con lo que parece estar chocando es con un tile entero negro del fondo situado a la izquierda del tile del cartel. Si ese mismo tile lo usas en otras partes del juego debería de ocurrirte igual. Comprueba en los comportamientos de los tiles que tengas puestos correctamente los valores de ese tile (Probablemente tenga el valor "8" -paredes- y tienes que ponerlo a "0" -traspasable-.

Suerte!!

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Jue, 11 Jun 2015, 00:22
por na_th_an
Elborra lo ha explicado estupendamente. Revisa el array "behaviours" en config.h y asegúrate que los 48 tiles tienen definido su comportamiento correctamente (aunque los mapas sólo usen los 16 primeros, si usas SET_TILE para poner cualquiera de los 32 restantes se toma en cuenta el comportamiento que tienen definido).

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Jue, 11 Jun 2015, 12:52
por primy
:shock: entonces pinto las esquinas del esqueleto en blanco?? :shock: :shock: que curioso la verdad. Con respecto a los atributos de "behaviour" parecen estar correctos

0, 8, 8, 8, 8, 8, 1, 1, 0, 0, 1, 0, 8, 1, 1, 10,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

El primero es el tile negro que uso de fondo, 5 piedros y suelos, dos matantes, dos fondos, unos pinchos, una tapa de alcantarilla de decoración, un piedro, dos matantes y una cerradura. En todo caso e modificado el archivo de mappy y he pintado de nuevo esa zona no valla ha haber metido la pata, gracias a los dos os cuento haber que tal los cambios, por cierto me habéis pegado lo de piedros de tanto leer el manual :lol: :lol:

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Jue, 11 Jun 2015, 16:01
por elborra
Mmmm, pintar pixeles en ese cuadrito no es necesario pero si que la tinta sea blanca (esto lo puedes hacer con la aplicación sevenUp) El tema dependerá de en que modo estes trabajando 48k o 128k puesto que se usan unas u otras herramientas para generar el tileset. Si no me equivoco en 128k se utiliza una utilidad para generar los niveles que usa directamente el fichero .png y, claro, si el tile (o una de las 4 partes que lo forman) es negro quizás lo interpreta como ink negro y paper negro... a ver si na_th_an puede arrojarte un poco de luz al respecto. En caso afirmativo siempre quedaría la alternativa de editar hexadecimalmente el fichero binario del tileset generado y cambiarle el atributo de color de ese trozo concreto (pero para esto tendríamos que decirte exactamente cual es el byte que tienes que cambiar). También como solución "cutre" podrías pintrar al menos un pixel en blanco en ese cuadrito.

Lo de los comportamientos idem de idem, dependiendo de si estas usando "COMPRESSED_LEVELS" o no.
Si no se usa "COMPRESSED_LEVELS" el proceso sería el "de siempre" (el del tutorial), donde los comportamientos estan definidos al final del archivo config.h$this->bbcode_second_pass_code('', 'unsigned char comportamiento_tiles [] = {
0, 0, 0, 0, 0, 0, 8, 4, 8, 4, 4, 1, 8, 8, 0, 1,
0, 0, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0,
8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};')Por el contrario si estan usando "COMPRESSED_LEVELS" los niveles se general con la herramienta churrera buildlevel.exe. A la hora de generar los niveles se le pasa al programa como datos que archivo (de texto) tiene que usar para generar los comportamientos de cada nivel.
$this->bbcode_second_pass_code('', '..\utils\buildlevel.exe mapa1.map 1 25 99 font.png work1.png sprites1.png extrasprites.bin enems1.ene 24 2 7 99 3 behs1.txt level1.bin')

Quizás es más información de la que necesitabas, pero bueno... De todas formas si tienes algún que otro problema refrescanos con que versión de la churrera estas trabajando, el modo (48k o 128k) y si estas utilizando "COMPRESSED_LEVELS" (con eso podré darte solución más dirigidas :D)

Re: Proyecto de juego de un inútil (Escape from the sewers)

Publicado: Jue, 11 Jun 2015, 22:48
por na_th_an
Lo de los cuadrados negros se puede solucionar muy fácilmente con la técnica que se explica en el tutorial. Abriendo el .h que exporta SevenuP sólo hay que irse a los 256 valores finales (a partir de la linea 279 del archivo), que son los de los atributos, y buscar los que tengan un 0 y cambiarlos por un 7, o el que se quiera.

http://www.elmundodelspectrum.com/conte ... itulo-2%29