It's actually quite fast ... try it for yourself - it should work with the demo
sync on
sync rate 0
dot 0,0,rgb(1,1,1) : ` Darn it! Total black is transparent, so use a dark grey
: ` Could also have used SET IMAGE COLORKEY
get image 1,0,0,1,1
box 0,0,16,16,rgb(255,0,0), rgb(0,255,0), rgb(0,0,255), rgb(255,0,255)
get image 2,0,0,16,16
Alpha=127
` This sprite is the fade-out sprite
sprite 1,0,0,1
size sprite 1,640,480
set sprite priority 1,9999 : ` set with high priority to ensure appears after all other sprites
` This sprite is to show the effect
sprite 2,320,240,2
offset sprite 2,7,7
` Colour the backdrop grey
backdrop on
color backdrop rgb(128,128,128)
while inkey$() <> " "
if upkey() and Alpha > 0 then dec Alpha
if downkey() and Alpha < 255 then inc Alpha
set sprite alpha 1, Alpha
sync
endwhile
Sprites are crisp, *if* you load the image correctly - which basically translates as adding an extra
,1 to the GET IMAGE and LOAD IMAGE commands.
Like in DB, you have to scroll backdrops yourself. You can do this by pasting images to the backdrop or copying from another bitmap, or by using a sprite, or ... there are lots of ways.
Sprites are not affected by lighting - for that you would actually have to implement the sprites yourself using plains.