2 Rich "Hi man - I know u love 2d and all and so do I so I tht u could help me, but any1 else's input is also VERY welcome 2

"
I'm in the process of making a 2d demo in DBPro - the first time I've tried to make an entire 2d project since using DB1 and I've come accross a problem.
I have one sprite - for my example a Sonic. This is saved as bitmaps, loaded as images and called sprite 1. The black around him is automatically removed, as I would hope
I have another sprite which is a basic small floor. This is saved as a bitmap, loaded as an image and called sprite 1000. Again, the black around the floor is automatically removed
However, when I test for collisions between them, it detects collision not between the visible area of the sprites, but with the whole sprite including the invisible black areas. (essentially as a small rectangle and a big rectangle, not as a sonic shape and a floor shape.
I'm sure this used to work in DB1? Is this a bug or is there another command or extension I should be using? Is it because DBP now treats sprites as 3D and is therefore giving them "box" collision?
Code below (Its very early, only 3 hrs work, don't laugh

)
rem ---------------------------------------------------------------------2D Test Development
rem Set Variables
p1animspeed=100: rem 1000 = new frame every second :)
windowedmode=0: rem Windowed Mode, 0=Off, 1=On
windowbuttons=0: rem Should Buttons be displayed and window resizable? 0=No, 1=Yes
windowfullscreen=0: rem Window Full Screen? 0=No, 1=Yes
p1x=100: rem Player 1's starting x sprite position
p1y=100: rem Player 1's starting y sprite position
p1direction=1: rem Player 1's starting direction. 0=left, 1=right
p1action=1: rem Player 1's starting action. 0=stand still, 1=walking
scrolling=1: rem 0=no scrolling,1=leftandright
rem ----------------------------------------------------------------------------Display Mode
set display mode 320,240,16: sync on: sync rate 0
if windowedmode=0 : hide mouse: set window off: endif
if windowedmode=1 then set window on
if windowbuttons=0 and windowedmode=1 then set window layout 0,1,0
if windowbuttons=1 and windowedmode=1 then set window layout 1,1,0
if windowfullscreen=1 and windowedmode=1 : set window layout 0,0,0 : maximize window: endif
rem --------------------------------------------------------------------------Load BMP Files
load image "back.bmp" ,1000,1
rem Load Still animations - frames 1-9 right and 10 - 19 left
load image "p1rstill1.bmp",1,1
load image "p1lstill1.bmp",10,1
rem Load Walking animations - frames 20-39 right and 40-59 left
load image "p1rwalk1.bmp",20,1
load image "p1rwalk2.bmp",21,1
load image "p1rwalk3.bmp",22,1
load image "p1rwalk4.bmp",23,1
load image "p1rwalk5.bmp",24,1
load image "p1rwalk6.bmp",25,1
load image "p1rwalk7.bmp",26,1
load image "p1rwalk8.bmp",27,1
load image "p1lwalk1.bmp",40,1
load image "p1lwalk2.bmp",41,1
load image "p1lwalk3.bmp",42,1
load image "p1lwalk4.bmp",43,1
load image "p1lwalk5.bmp",44,1
load image "p1lwalk6.bmp",45,1
load image "p1lwalk7.bmp",46,1
load image "p1lwalk8.bmp",47,1
rem -------------------------------------------------------------------------Start Game Loop
do
rem ------------------------------------------------------------------Sprite refresh counter
rem paste image 1000,levelscroll,-150
sprite 1000,levelscroll,-150,1000
counterleft=startcount-timer()
if refreshscreen=0 and startrefreshcount=0 then startrefreshcount=timer()
refreshcounterleft=startrefreshcount-timer()
if refreshcounterleft1 then p1frame=1
if p1frame=1 then sprite 1,p1x,p1y,1
endif
if p1action=0 and p1direction=0
if p1frame>1 then p1frame=1
if p1frame=1 then sprite 1,p1x,p1y,10
endif
rem ---------------------------------------------------------------------------------Walking
if p1action=1 and p1direction=1
if p1frame>8 then p1frame=1
if p1frame=1 then sprite 1,p1x,p1y,20
if p1frame=2 then sprite 1,p1x,p1y,21
if p1frame=3 then sprite 1,p1x,p1y,22
if p1frame=4 then sprite 1,p1x,p1y,23
if p1frame=5 then sprite 1,p1x,p1y,24
if p1frame=6 then sprite 1,p1x,p1y,25
if p1frame=7 then sprite 1,p1x,p1y,26
if p1frame=8 then sprite 1,p1x,p1y,27
endif
if p1action=1 and p1direction=0
if p1frame>8 then p1frame=1
if p1frame=1 then sprite 1,p1x,p1y,40
if p1frame=2 then sprite 1,p1x,p1y,41
if p1frame=3 then sprite 1,p1x,p1y,42
if p1frame=4 then sprite 1,p1x,p1y,43
if p1frame=5 then sprite 1,p1x,p1y,44
if p1frame=6 then sprite 1,p1x,p1y,45
if p1frame=7 then sprite 1,p1x,p1y,46
if p1frame=8 then sprite 1,p1x,p1y,47
endif
rem ----------------------------------------------------------------------------Scroll Level
if scrolling=1 and refreshscreen=1
if rightkey()=1 then levelscroll=levelscroll-2
if leftkey()=1 then levelscroll=levelscroll+2
endif
rem -----------------------------------------------------------Collision Detction with Level
If sprite collision (1,1000)=1 then collision=collision+1
rem ---------------------------------------------------------------------------End Game Loop
refreshscreen=0
sync
loop
Like I said this is in DBPro, patch 3.1
Any help as to why this doesn't work will be well appreciated - it seems a pretty bad thing to be wrong if it is a bug? Like I said I've never attempted this in Pro before, only in DB1
If this is a known problem, any idea on a date for fixing it? Or is it my code? Or my PC setup? Thanks guys
http://www.myminehead.com/mylogo.gif[/img]