perfectly smooth scrolling background bobs

This commit is contained in:
alpine9000 2016-05-27 16:46:13 +10:00
parent 4daeb1bef3
commit 71fff816ce
3 changed files with 15 additions and 17 deletions

View File

@ -5,7 +5,7 @@
</tileset>
<layer name="background" width="200" height="16">
<data encoding="base64" compression="zlib">
eJzlmslOxDAMhjuCwoDYJTaJbQSHkYb3fz7cQ6SRFbt27DhpOXwSQ5c4cX7bSToOw7BdERvFvRfApaGta+AGuAXuKvdrl/nfq6Fvo6NtkeOQbB8zv/cVaNE/7NfTRn65Bx4U92M7H4En4Bl4CRi3mn2zjK1mHHK+nmvrDf3m9DESbJlrHL372csvmCuH9t+BD+AT+FI8dyK8j8oB3vEsl3M1Y1s6DqV+pObynrkm1QL+26N/HBpfTn46V7zbYjeOSd7z7hv4Ia6dCd9B5YCIeFZzTiR2hW1554g5zZTMJSlLyk2eth6A34FfI0TMXap9yqceeRVjXedhuHncQh9RvmzNkmyl5o31HVzeK4XKg9J1J9aXV33FvWtOH1q9S2vqHCnPeseZiRrxu8SntZ6xkKsnU95L91BzOHJcKX15rz+k+qDs8YwtuTxu3XOJhttLLumLV/+lOltS7ZujlT4ocGypDadHbay15LfWaM50JqQ6q11Pau3GUGshr/pKUme19j0Hp0ePWFt67tIDLWzv5Tw1xc3I/GHZo1oruTPr/0gaB2tMktRzKedwe+Apbkr0kZ6JyB+l+u9Re9rcH/GNQcoJNfZYe8CrntPUV3PPeK4/elrPRX8To+07pT+t3ZaaJmqMWn1/1Uof1Fq2p/OBaK169V1rt7am2RS0Zc3vHr7QxAGtPjzWHzWpsXfkrVWrjVL/RsYYa1vSMZG0g+ca3l/g4gDOTxp9eK3P10b0mqf12c2S96/nwPnpWA/HeGtj4g9zxnTp
eJzdmtlOAzEMRVvBQEHsEpvEVsFDJfj/7yN9iFRZsceOb5xMH45EmSVOnGs7yUyr1WpzRKwN914kLh1tXSduEreJu8b92hb+9+ro2wS0LXIcsu1T4feuAT36R/162skv94kHw/3UzsfEU+I58RIwbi375hlbyziUfD3X1hv5LeljYtgI1yRG9zPKL5QrQPvviY/EZ+LL8NyJ8j4uB6DjWSnnWsa2dhxq/cjN5Z1wTasF+jeifxJWX54b3u2xm8Yk9Lz7Tvww186U7+ByQEQ8azknMtvKttA5Yk4zNXNJy5JyE9LW38TfSl4jRMxdrn3Op4i8SvGu8yjSPO6hjyhf9mZJtnLzxvsOKe/VwuVB7bqT6gtVX0nvmtOHVe/amrpEzrPoONOTmr5E979UT+a8l+/h5nCLvMjB6Qu9/tDqg7MHGVtKedy75xKNtJdc0xdU/7U6W1LtW6KXPjhobGmNpEdrrPXkt95YznT2aHXWup602k3h1kKo+kpTZ/X2vYSkR0SsrT13GYEeto9ynprjZmT+8OxRofDGGzSlM2stkfV51Dh4Y5KmnstzQNoDz3FTo4/8TET+qNX/CNqjWOdvxDcGOSe02GMdAVQ9Z6mv5p5Brj9GWs9FfxOD6rvVbk9NEzVGvb6/6qUPbi070vlAtFZRfbfaba1p1hVtefM7wheWOGDVB2L90ZIWe0dorXpt1Po3MsZ429KOiaYdOtfo/oIUB2h+sugDtT4/NqLXPL3Pbpa8fz0HzU+HejgErY09/95VdQg=
</data>
</layer>
</map>

View File

@ -14,7 +14,8 @@ BOB_MODULO equ BACKGROUND_TILEMAP_WIDTH_BYTES-BOB_BLIT_WIDTH_BYTES
BOB_SHIFT_CONVERT equ 4
BOB_SAVE_SIZE equ BOB_BLIT_WIDTH_BYTES*SCREEN_BIT_DEPTH*BOB_BLIT_HEIGHT
BOB_IDLE_X equ (-31<<BOB_SHIFT_CONVERT)
BOB_BALLOON_DX equ 2<<BOB_SHIFT_CONVERT
BOB_CLOUD_DX equ 1<<(BOB_SHIFT_CONVERT-1)
;; BLITTER_OBJECT
;; index,startX,y,dx,mapLine,blitHeight
@ -26,11 +27,11 @@ BLITTER_OBJECT: macro
.\@y:
dc.l \3
.\@dx:
dc.l \4
dc.l 0
.\@sourceAddress:
dc.l backgroundTilemap+(BACKGROUND_TILEMAP_WIDTH_BYTES*\5*SCREEN_BIT_DEPTH)
dc.l backgroundTilemap+(BACKGROUND_TILEMAP_WIDTH_BYTES*\4*SCREEN_BIT_DEPTH)
.\@maskAddress:
dc.l bobMask+(BACKGROUND_TILEMAP_WIDTH_BYTES*\5*SCREEN_BIT_DEPTH)
dc.l bobMask+(BACKGROUND_TILEMAP_WIDTH_BYTES*\4*SCREEN_BIT_DEPTH)
.\@saveBufferAddress:
dc.l splash+(\1)*(BOB_SAVE_SIZE*2)
dc.l splash+(\1)*(BOB_SAVE_SIZE*2)+BOB_SAVE_SIZE
@ -38,15 +39,15 @@ BLITTER_OBJECT: macro
dc.l 0
dc.l 0
.\@blitSize:
dc.w ((\6)*SCREEN_BIT_DEPTH)<<6|(BOB_BLIT_WIDTH_WORDS)
dc.w ((\5)*SCREEN_BIT_DEPTH)<<6|(BOB_BLIT_WIDTH_WORDS)
align 4
endm
BALOON_BOB: macro
BLITTER_OBJECT \1,BOB_IDLE_X,\2,\3,67,29
BLITTER_OBJECT \1,BOB_IDLE_X,0,67,29
endm
CLOUD_BOB: macro
BLITTER_OBJECT \1,BOB_IDLE_X,\2,\3,0,16
BLITTER_OBJECT \1,BOB_IDLE_X,0,0,16
endm

View File

@ -9,17 +9,14 @@
xdef RestoreBobBackgrounds
xdef bobBufferOffset
xdef EnableBobs
;; BALOON_BOB/CLOUD_BOB
;; index,y,dx
bob:
CLOUD_BOB 0,15,8
CLOUD_BOB 0
endBob:
CLOUD_BOB 1,96,10
CLOUD_BOB 2,170,12
CLOUD_BOB 1
CLOUD_BOB 2
baloonBob:
BALOON_BOB 3,15,24
BALOON_BOB 3
dc.l 0
@ -30,7 +27,7 @@ AddBobBaloon:
move.l #320<<BOB_SHIFT_CONVERT,BOB_X(a5)
lsl.w #4,d1
move.w d1,BOB_Y+2(a5)
move.l #24,BOB_DX(a5)
move.l #BOB_BALLOON_DX,BOB_DX(a5)
rts
.continue:
rts
@ -53,7 +50,7 @@ AddBobCloud:
move.l a3,BOB_MASK_ADDRESS(a5)
lsl.w #4,d1
move.w d1,BOB_Y+2(a5)
move.l #12,BOB_DX(a5)
move.l #BOB_CLOUD_DX,BOB_DX(a5)
bra .done
.continue:
adda.l #endBob-bob,a5