Advertisement
Guest User

16x16 tilemapper

a guest
Jan 5th, 2012
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;lleva:
  2. ;de = xcoord
  3. ;b = y coord
  4. dibMapa:
  5.     add hl,de
  6.     ld e,b
  7.     ld b,a
  8.     add hl,de
  9.     djnz $-1
  10.     exx
  11.         ld hl,saferam1  ;donde guardar el mapa antes de dibujarlo a la pantalla, es decir, el gbuf
  12.         ld de,13        ;numero de columnas en gbuf menos uno (por el inc hl')
  13.         ld bc,$0705     ;dibujar 7 columnas y 5 filas de sprites (en la pantalla caben 6x4))
  14. dibFila:
  15.         push hl ;guardar gbuf
  16.     exx
  17.     push hl     ;save map loc
  18.     ld l,(hl)   ;numero del sprite
  19.     ld h,0
  20.     ld bc,tileData
  21.     add hl,hl   ;x2
  22.     add hl,hl   ;x4
  23.     add hl,hl   ;x8
  24.     add hl,hl   ;x16
  25.     add hl,hl   ;x32
  26.     add hl,bc   ;primer byte en sprite
  27.     ld b,16     ;16 filas en sprite
  28. dibSprite:
  29.     ld a,(hl)   ;pixeles del sprite a dibujar
  30.     inc hl      ;proximo conjunto de pixeles
  31.     exx     ;cambiar a los registros alternativos
  32.         ld (hl),a
  33.         inc hl  ;proximo byte en gbuf
  34.     exx
  35.     ld a,(hl)
  36.     inc hl      ;2ΒΊ conjunto (pixels son 16x16: 2 bytes de ancho)
  37.     exx
  38.         ld (hl),a
  39.         add hl,de   ;bajar a la proxima fila
  40.     exx
  41.     djnz dibSprite
  42.      
  43.     pop hl      ;posicion en el mapa
  44.     inc hl
  45.     exx
  46.         pop hl  ;gbuf anterior
  47.         inc hl
  48.         inc hl  ;saltar dos bytes porque los sprites son de 16x16
  49.         djnz dibFila
  50.      
  51.     exx
  52.     ld a,(mapWidth)
  53.     sub 7           ;ya hemos avanzado un cierto numero de tiles
  54.     ld e,a
  55.     ld d,0
  56.     add hl,de
  57.     exx
  58.         ld e,14*15  ;
  59.         add hl,de
  60.         ld e,13
  61.         ld b,7
  62.         dec c
  63.         jr nz,drawRow
  64.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement