Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;lleva:
- ;de = xcoord
- ;b = y coord
- dibMapa:
- add hl,de
- ld e,b
- ld b,a
- add hl,de
- djnz $-1
- exx
- ld hl,saferam1 ;donde guardar el mapa antes de dibujarlo a la pantalla, es decir, el gbuf
- ld de,13 ;numero de columnas en gbuf menos uno (por el inc hl')
- ld bc,$0705 ;dibujar 7 columnas y 5 filas de sprites (en la pantalla caben 6x4))
- dibFila:
- push hl ;guardar gbuf
- exx
- push hl ;save map loc
- ld l,(hl) ;numero del sprite
- ld h,0
- ld bc,tileData
- add hl,hl ;x2
- add hl,hl ;x4
- add hl,hl ;x8
- add hl,hl ;x16
- add hl,hl ;x32
- add hl,bc ;primer byte en sprite
- ld b,16 ;16 filas en sprite
- dibSprite:
- ld a,(hl) ;pixeles del sprite a dibujar
- inc hl ;proximo conjunto de pixeles
- exx ;cambiar a los registros alternativos
- ld (hl),a
- inc hl ;proximo byte en gbuf
- exx
- ld a,(hl)
- inc hl ;2ยบ conjunto (pixels son 16x16: 2 bytes de ancho)
- exx
- ld (hl),a
- add hl,de ;bajar a la proxima fila
- exx
- djnz dibSprite
- pop hl ;posicion en el mapa
- inc hl
- exx
- pop hl ;gbuf anterior
- inc hl
- inc hl ;saltar dos bytes porque los sprites son de 16x16
- djnz dibFila
- exx
- ld a,(mapWidth)
- sub 7 ;ya hemos avanzado un cierto numero de tiles
- ld e,a
- ld d,0
- add hl,de
- exx
- ld e,14*15 ;
- add hl,de
- ld e,13
- ld b,7
- dec c
- jr nz,drawRow
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement