Привет всем кодерам спектурмистам.
У меня есть несколько глупых вопросов:
Код:
GETILE:
macro ts
add a,a
ld l,a
ld h,ts>>8
ld sp,hl
pop hl
ld sp,hl
emacro
;GTILE
BLTILE:
macro nxt
dup 15
pop bc
ld (hl),c
inc l
ld (hl),b
add hl,de
edup
pop bc
ld (hl),c
inc l
ld (hl),b
ld bc,nxt
add hl,bc
emacro
;BLTILE
BLTMAP:
proc
ld (@SAVSP),sp
ld hl,(MAPBY-1)
ld l,0; Y*128
srl h
rr l
ld de,MAPBUF
add hl,de
ld de,(MAPBX)
add hl,de; +X
ex de,hl
ld bc,#0a71 ; b = map height, c = map width - 16
exx
ld hl,BSADDR ; back screen address
ld de,BSWDTH-1; back screen width -1
exx
@LOOP:
dup 15
ld a,(de)
inc e
GETILE TILSET; tile table address
exx
BLTILE -479
exx
edup
ld a,(de)
GETILE TILSET
exx
BLTILE 1
exx
ld a,e
add a,c
ld e,a
jr nc,$+3
inc d
dec b
jp nz,@LOOP
@SAVSP: equ $+1
ld sp,-1
ret
eproc
;BLTMAP
Слегка модифицированный код из CJ Antics Elephant
Карта там массив 128x20
А вопрос следующий:
Если кто помнит, то в CJ Antics слоненок находится по середине,
но как только достигает одного из краев, карта скроллируется возвращая его обратно на середину.
Как лучше организовать
игровой цикл? рисовать карту всегда (более 100 000T на прорисовку)
или рисуем один раз, а потом обновляем по мере необходимости, т.е. если нужен скролл, но фон под спрайтами нужно будет сохранять..
Например в Stormlord скролл постоянный, но и карта там рисуется подругому...