El sprite del heroe se pinta en over.set() sin mirar si la celda de destino es
solida (lib/render.js:712), asi que el cuerpo atraviesa el muro.
Se ve siempre al bajar al dungeon, que es el primer cuadro que el jugador ve
de ese mapa. arrive esta en (3,2), a dos filas del muro de arriba, y el sprite
de 3 filas pinta una O sobre la fila 0, que es todo #:
###O##########################################################
#.\L-......................................................###
#.U/|............####.....................####..............##
La fila 0 real del mapa es ####... entera. La O es la cabeza del heroe. Y
encima es el mismo glifo que la fuente solida que hay adentro en (30,7), asi que
se lee como un agujero en el muro.
Medido, cuantas celdas solidas pisa el dibujo en cada punto de llegada:
arrive de city (160,180) pisa solidos en: ninguno
arrive de field (40,1) pisa solidos en: 39,-1 40,-1 41,-1 39,0 41,0
arrive de dungeon (3,2) pisa solidos en: 2,0 3,0 4,0
O sea que tambien pasa al entrar al campo.
Arreglo
El comentario de lib/render.js:706 dice que el cuerpo va arriba de los pies
"para que nadie pinte a traves de la pared", pero esa proteccion solo cubre la
fila de abajo. En el loop que hace over.set(cell, line[sx]), saltear la celda
si isSolid(map, x, y).
Como parche local y barato para el caso del dungeon: bajar spawn/arrive a
(3,3) y mover la U a (2,3). Verificado que sigue conectado y que la U queda
a un paso. Pero eso no arregla el caso del campo ni el general.
El sprite del heroe se pinta en
over.set()sin mirar si la celda de destino essolida (
lib/render.js:712), asi que el cuerpo atraviesa el muro.Se ve siempre al bajar al dungeon, que es el primer cuadro que el jugador ve
de ese mapa.
arriveesta en (3,2), a dos filas del muro de arriba, y el spritede 3 filas pinta una
Osobre la fila 0, que es todo#:La fila 0 real del mapa es
####...entera. LaOes la cabeza del heroe. Yencima es el mismo glifo que la fuente solida que hay adentro en (30,7), asi que
se lee como un agujero en el muro.
Medido, cuantas celdas solidas pisa el dibujo en cada punto de llegada:
O sea que tambien pasa al entrar al campo.
Arreglo
El comentario de
lib/render.js:706dice que el cuerpo va arriba de los pies"para que nadie pinte a traves de la pared", pero esa proteccion solo cubre la
fila de abajo. En el loop que hace
over.set(cell, line[sx]), saltear la celdasi
isSolid(map, x, y).Como parche local y barato para el caso del dungeon: bajar
spawn/arrivea(3,3) y mover la
Ua (2,3). Verificado que sigue conectado y que laUquedaa un paso. Pero eso no arregla el caso del campo ni el general.