Re: A86: bomberman mapping
[Prev][Next][Index][Thread]
Re: A86: bomberman mapping
I would discourage this approach because of its size. The code I would
use is this:
;de points to the level you want to load.
LoadLevel:
ld hl, LevelBuffer
ld c, 16 ;16 bytes
NewByte:
ld b, 4
ld a, (de)
inc de
InnerLoop:
ld (hl), 0
RLA
RL (hl)
RLA
RL (hl)
inc hl
DJNZ InnerLoop
dec c
jr NZ, NewByte
ret
Level1:
.db %01010101, %01010101
.db %01000001, %00010001
.db %01000111, %00010001
.db %01000101, %00010001
.db %01000000, %00000001
.db %01000001, $01000001
.db %01000001, %01000001
.db %01010101, %01010101
Level Buffer: <<64 bytes>>
Steve86Asm@aol.com (Steve86Asm@aol.com) wrote:
>The 1st really woudn't be that hard. You could use just the buffer, rather
>than the map whenever you reference it.
>
>For example, if each map is 8x8 and you have 1 byte per square (not too
>familiar with bomberman, but aren't there more than just 1 type of block?),
>maybe something like this:
>Level1:
> .db 1,1,1,1,1,1,1,1
> .db 1,0,0,1,0,1,0,1
> .db 1,0,1,2,0,1,0,1
> .db 1,0,1,1,0,1,0,1
> .db 1,0,0,0,0,0,0,1
> .db 1,0,0,1,1,0,0,1
> .db 1,0,0,1,1,0,0,1
> .db 1,1,1,1,1,1,1,1
>LevelBuffer:
> .db 0,0,0,0,0,0,0,0
> ;(7 more times)
>
>then you could use this code to load the level:
>
> ld hl,Level1 ;source
> ld de,LevelBuffer ;destination
> ld bc,64 ;# bytes
> ldir
>
>and then use LevelBuffer when you reference the level.
James Yopp
jyopp@pobox.com
"Time is the fire in which we burn."