Skip to content

el dibujo del heroe se pinta a traves de las paredes #16

Description

@leocagli

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions